[Gluster-devel] FUSE directory filehandle

Emmanuel Dreyfus manu at netbsd.org
Thu Jan 10 02:40:34 UTC 2019


This is not strictly a GlusterFS question since I came to it porting
LTFS to NetBSD, however I would like to make sure I will not break
GlusterFS by fixing NetBSD FUSE implementation for LTFS.

Current NetBSD FUSE implementation sends the filehandle in any FUSE
requests for an open node, regardless of its type (directory or file). 

I discovered that libfuse low level code manages filehandle differently
for opendir/readdir/syncdir/releasedir than for other operations. As a
result, when a getattr is done on a directory, setting the filehandle
obtained from opendir can cause a crash in libfuse.

The fix for NetBSD FUSE implementation is to avoid setting the
filehandle for the following FUSE operations on directories: getattr,
setattr, poll, getlk, setlk, setlkw, read, write (only the first two
ones are likely to be actually used, though)

Does anyone forsee a possible problem for GlusterFS with such a
behavior? In other words, will it be fine to always have a
FUSE_UNKNOWN_FH (aka null) filehandle for getattr/setattr on

Emmanuel Dreyfus
manu at netbsd.org

More information about the Gluster-devel mailing list