-
Notifications
You must be signed in to change notification settings - Fork 17
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fuse3 wrongly assumes sequential directory offsets in handle_readdir #12
Comments
asomers
added a commit
to asomers/fuse3
that referenced
this issue
Sep 22, 2021
The FUSE protocol allows each directory entry to include a off field in struct fuse_dirent. It's purpose is to uniquely identify a directory entry so that a future FUSE_READDIR operation may continue where a previous one left off. The FUSE file system is allowed to choose the format of those off values. In particular, sequentially increasing indexes are usually not adequate, because if a directory entry is deleted in between two FUSE_READDIR operations, using sequential off values could lead to skipping over a directory entry. Instead of attempting to manage those offsets with fuse3, forcing them to be sequential, pass responsibility to the file system. Fixes Sherlock-Holo#12
asomers
added a commit
to asomers/fuse3
that referenced
this issue
Sep 22, 2021
The FUSE protocol allows each directory entry to include a off field in struct fuse_dirent. It's purpose is to uniquely identify a directory entry so that a future FUSE_READDIR operation may continue where a previous one left off. The FUSE file system is allowed to choose the format of those off values. In particular, sequentially increasing indexes are usually not adequate, because if a directory entry is deleted in between two FUSE_READDIR operations, using sequential off values could lead to skipping over a directory entry. Instead of attempting to manage those offsets with fuse3, forcing them to be sequential, pass responsibility to the file system. Fixes Sherlock-Holo#12
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The FUSE protocol allows each directory entry to include a
off
field instruct fuse_dirent
. It's purpose is to uniquely identify a directory entry so that a futureFUSE_READDIR
operation may continue where a previous one left off. The FUSE file system is allowed to choose the format of thoseoff
values. In particular, sequentially increasing indexes are usually not adequate, because if a directory entry is deleted in between twoFUSE_READDIR
operations, using sequentialoff
values could lead to skipping over a directory entry.fuse3 currently manages the
off
value itself, inhandle_readdir
, and provides the file system with no means to override it. Instead, theoff
value should be specified by the file system as part ofreply::DirectoryEntry
.The text was updated successfully, but these errors were encountered: