[PATCH v1 0/2] fuse: disallow dynamic inode blksize changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



With fuse now using iomap for writeback handling, inode blocksize changes are
problematic because iomap relies on the inode blocksize value for its internal
bitmap logic.

There are a few options for addressing this, as discussed in [1].
a) add "u8 blkbits" to iomap internals (struct iomap_folio_state) and change
iomap logic to use this static value instead of using inode->i_blkbits
b) remove all folios for the inode from the page cache and synchronize that
with modifying inode->i_blkbits
(unfortunately this does not work, see [1] for more details)
c) disallow the inode blocksize from changing dynamically in fuse

In the discussion in [1], we decided to go with c) given that servers don't
have a good use case for dynamically modifying the blocksize and it doesn't
seem likely that servers use this. If the server wishes to set a constant
blocksize for all inodes, then from patch 2, this can be done at mount time
through the -oblksize= configuration option.


Thanks,
Joanne

[1] https://lore.kernel.org/linux-fsdevel/CAJnrk1ZREcrd=FNUYLVWwXUeJ3mJz9J+aqyEvoHkyG3RrJ2QkA@xxxxxxxxxxxxxx/T/#m13c375821fb36c491626a59b552ed0cc5061736a

Joanne Koong (2):
  fuse: disallow dynamic inode blksize changes
  fuse: add blksize configuration at mount for non-fuseblk servers

 fs/fuse/dir.c             |  9 +--------
 fs/fuse/inode.c           | 18 +++++++++---------
 include/uapi/linux/fuse.h |  4 ++--
 3 files changed, 12 insertions(+), 19 deletions(-)

-- 
2.47.3





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux