Commit 47654fc9 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent ebdcb349
...@@ -20,18 +20,22 @@ we have to disable FUSE_AUTO_INVAL_DATA to tell the kernel we are fully ...@@ -20,18 +20,22 @@ we have to disable FUSE_AUTO_INVAL_DATA to tell the kernel we are fully
responsible for invalidating pagecache. If we don't, the kernel will be responsible for invalidating pagecache. If we don't, the kernel will be
clearing whole cache of head/file on e.g. its mtime change. clearing whole cache of head/file on e.g. its mtime change.
XXX FUSE_AUTO_INVAL_DATA does not fully prevent kernel from automatically Note: FUSE_AUTO_INVAL_DATA does not fully prevent kernel from automatically
invalidating pagecache - e.g. it will invalidate whole cache on file size changes: invalidating pagecache - e.g. it will invalidate whole cache on file size changes:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/fuse/inode.c?id=e0bc833d10#n233 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/fuse/inode.c?id=e0bc833d10#n233
(XXX no) we can currently workaround it with using writeback mode (see !is_wb in the It was hoped that we could workaround it with using writeback mode (see !is_wb
link above), but better we have proper FUSE flag for filesystem server to in the link above), but it turned out that in writeback mode the kernel indeed
tell the kernel it is fully responsible for invalidating pagecache. does not invalidate data cache on file size change, but neither it allows the
filesystem to set the size due to external event (see https://git.kernel.org/linus/8373200b12
"fuse: Trust kernel i_size only"). This prevents us to use writeback workaround
as we cannot even update the file from being empty to having some data.
XXX ^^^ we cannot workaround with writeback mode - in writeback mode the kernel -> we did the patch for FUSE to have proper flag for filesystem server to tell
does not trust us for size that we report via getattr, and thus we cannot even the kernel it is fully responsible for invalidating pagecache:
update the file from being 0 size to having some data.
https://lwn.net/ml/linux-fsdevel/20190315212556.9315-1-kirr%40nexedi.com/
Invalidations to wcfs clients are delayed until block access Invalidations to wcfs clients are delayed until block access
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment