I've got several lowlevel filesystems. Let's take an example to
explain the issue, a simple overlay fs.
This example fs, testfs, shows /tmp under the mountpoint.
Now, assume it's mounted like under ~/mount, and the directory
/tmp/testdir exist, and there are the
file A, B and C.
So when a readdir is done in ~/mount/testdir, entries and inodes are
created in testfs, to match with the entries found in /tmp/testdir.
Now I do a remove of /tmp/testdir/B.
This wil be detected of course by any following readdir call, so a
refresh of ~/mount/testdir will not show B anymore.
But it does still exist in testfs. In most of filesystems (and also
not the examples in the FUSE source) do not compare
the output of a readdir with the current list of entries known to th
If testfs should do this, an extra compare is required, and for every
entry present in testfs and not found in the readdir output, an
fuse_lowlevel_notify_delete/invalidate call should follow.
I've implemented this in some of my filesystems already by making
entries point to the next and prev in a directory, and the parent
point to the first. But it's also possible to use a static hash table
Has anyone detected this issue and experience with this??
Get latest updates about Open Source Projects, Conferences and News.