mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
fuse: keep inode->i_blkbits constant
With fuse now using iomap for writeback handling, inode blkbits changes
are problematic because iomap relies on inode->i_blkbits for its
internal bitmap logic. Currently we change inode->i_blkbits in fuse to
match the attr->blksize value passed in by the server.
This commit keeps inode->i_blkbits constant in fuse. Any attr->blksize
values passed in by the server will not update inode->i_blkbits. The
client-side behavior for stat is unaffected, stat will still reflect the
blocksize passed in by the server.
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Link: https://lore.kernel.org/20250807175015.515192-1-joannelkoong@gmail.com
Fixes: ef7e7cbb32
("fuse: use iomap for writeback")
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
bef2981bad
commit
542ede096e
@ -289,11 +289,6 @@ void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr,
|
||||
}
|
||||
}
|
||||
|
||||
if (attr->blksize != 0)
|
||||
inode->i_blkbits = ilog2(attr->blksize);
|
||||
else
|
||||
inode->i_blkbits = inode->i_sb->s_blocksize_bits;
|
||||
|
||||
/*
|
||||
* Don't set the sticky bit in i_mode, unless we want the VFS
|
||||
* to check permissions. This prevents failures due to the
|
||||
|
Loading…
Reference in New Issue
Block a user