Hi Maxim,
I'm new to fuse but have some experience with NFS. From my
understanding after reviewing your patchset, it seems only work with
local file system or a distributed file system whose file is never
modified (could be grown but no or very few modified) because it
doesn't exam the pre/post status of the writing object (e.g. a file).
So if a file is modified outside, fuse might not get any chance to
handle it...... Correct me if I got wrong since I'm really new to
fuse. :-)
Would this pose a problem for a filesystem in which the size of the
inode can change remotely (i.e., not visible to the local instance of
fuse)? I haven't tested this, but it seems like it could be an issue
based on the implementation.
Yes, it will. The model of i_size management I implemented here is based
on an assumption that the userspace is just a storage for data and should
catch up with the kernel i_size value. In order to make it possible for user
space to update i_size in kernel we'd have to implement some (probably)
tricky algorithm, I haven't yet thought about it.