Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Starting with fuse 3.0 the nonempty option has been removed.#440

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Closed

Conversation

@juddmon
Copy link

@juddmonjuddmon commentedDec 9, 2019
edited
Loading

I ran into this problem in Ubuntu 20.04 beta.

The code for libfuse >= 3.0 had the nonempty mount option removed from fusermount because the standard mount option does not have this option. This caused gocryptfs to fail when this option is used (fuse doesn't allow that option). Not using it will not work either if the mountpoint is not empty because the check "isEmptyDir" failed.

http://fuse.996288.n3.nabble.com/ANNOUNCE-libfuse-3-0-0-has-been-released-td14403.html

This caused gocryptfs to fail when this option is used and not using it will not work if the mountpoint is not empty either because the check failed.http://fuse.996288.n3.nabble.com/ANNOUNCE-libfuse-3-0-0-has-been-released-td14403.html
rfjakob added a commit that referenced this pull requestDec 28, 2019
fusermount3 (i.e. fusermount from libfuse 3.x) has droppedthe `nonempty` option.Detect fusermount3 and don't add `nonempty` in this case.Fixes#440
@rfjakob
Copy link
Owner

Hi! Thanks for the patch! The version parsing logic looks a little scary to me, I tried to have a simpler solution. Can you try6eee5f2 and see if it fixes your problem?

Also, gocryptfs will keep the-nonempty option, as I think it is useful. Mounting over non-empty directories should still be rejected by default, also on libfuse3.

@juddmon
Copy link
Author

juddmon commentedDec 28, 2019
edited
Loading

Hi! Thanks for the patch! The version parsing logic looks a little scary to me, I tried to have a simpler solution. Can you try6eee5f2 and see if it fixes your problem?

Also, gocryptfs will keep the-nonempty option, as I think it is useful. Mounting over non-empty directories should still be rejected by default, also on libfuse3.

Mounting over non-empty directoriesis allowed by default in libfuse 3.0 to match the behavior of mount.

There is a changelog entry for libfuse3.0 that explains why the -nonempty option breaks with libfuse3.
http://fuse.996288.n3.nabble.com/ANNOUNCE-libfuse-3-0-0-has-been-released-td14403.html

The-o nonempty mount point has been removed, mounting over
non-empty directories is now always allowed. This brings the
behavior of FUSE file systems in-line with the behavior of the
regularmount command.

File systems that do not want to allow mounting to non-empty
directories should perform this check themselves before handing
control to libfuse.
Here is the error I get with this commit:

Password: Decrypting master key/usr/bin/fusermount: unknown option 'nonempty'fuse.NewServer failed: fusermount exited with code 256

This is on Ubuntu 20.04. I am happy to keep testing for you until we get this right. My PR worked, but I do agree that I wasn't real happy with the version checking and was hoping you knew a better way.

@juddmon
Copy link
Author

I did not copy the binary built from6eee5f2 to /usr/bin/gocryptfs. After I did this it works and I am happy with it. Thanks for accepting part of my patch and help!

@rfjakob
Copy link
Owner

Thanks for testing! Merged to master.

Mounting over non-empty directories should still be rejected by default, also on libfuse3.

Sorry, that was unclear! gocryptfs will keep rejecting nonempty directories per default, also when using libfuse3. This is checked inside gocryptfs by theisEmptyDir() function and does not depend on libfuse behavoir.

@juddmon
Copy link
Author

Mounting over non-empty directories should still be rejected by default, also on libfuse3.

Sorry, that was unclear! gocryptfs will keep rejecting nonempty directories per default, also when using libfuse3. This is checked inside gocryptfs by theisEmptyDir() function and does not depend on libfuse behavoir.
Yea, that wording threw me off for a bit and made me re-explain, but I eventually knew what you meant. Will I get a little credit in the git log or anywhere?

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants

@juddmon@rfjakob

[8]ページ先頭

©2009-2025 Movatter.jp