aboutsummaryrefslogtreecommitdiffstats
path: root/src/bindfs.c
diff options
context:
space:
mode:
authorMartin Pärtel <martin.partel@gmail.com>2021-01-30 14:34:47 +0200
committerMartin Pärtel <martin.partel@gmail.com>2021-01-30 14:35:14 +0200
commit9bc1307388d77be72a972dc131876a1aa4f9efbf (patch)
tree7f60eaf7c2048549e50375c2005fcd7bd33bcee6 /src/bindfs.c
parent3482a35a1ac0880235653e353b1f8489d59eacd3 (diff)
downloadbindfs-9bc1307388d77be72a972dc131876a1aa4f9efbf.tar.gz
Disabled test "preserves readdir inode numbers" in FUSE 3 mode for now.
Diffstat (limited to 'src/bindfs.c')
-rw-r--r--src/bindfs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/bindfs.c b/src/bindfs.c
index aae4281..a3691ac 100644
--- a/src/bindfs.c
+++ b/src/bindfs.c
@@ -933,7 +933,9 @@ static int bindfs_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
// errno in that case, so we zero it first and set it ourself if it
// doesn't.
#ifdef HAVE_FUSE_3
- if (filler(buf, de->d_name, &st, 0, ((flags & FUSE_READDIR_PLUS) ? 0 : FUSE_FILL_DIR_PLUS)) != 0) {
+ // TODO: FUSE_FILL_DIR_PLUS doesn't work with offset==0: https://github.com/libfuse/libfuse/issues/583
+ // Work around this by implementing the offset!=1 mode. Be careful - it's quite error-prone!
+ if (filler(buf, de->d_name, &st, 0, FUSE_FILL_DIR_PLUS) != 0) {
#else
if (filler(buf, de->d_name, &st, 0) != 0) {
#endif