diff options
| author | Christian Brauner <brauner@kernel.org> | 2025-11-05 09:37:47 +0100 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-11-05 22:59:31 +0100 |
| commit | 73fd0dba0beb1d2d1695ee5452eac8dfabce3f9e (patch) | |
| tree | 282072941bb3b6e6498d8e7b37d3cbbd99f0a9f7 /fs/open.c | |
| parent | 5b8ed52866e3d19e02860c7cf1d6bbbd70b619e9 (diff) | |
| parent | ab5f296076f3cd43470e2f70db61c9fd258db85b (diff) | |
Merge patch series "fs: introduce super write guard"
Christian Brauner <brauner@kernel.org> says:
I'm in the process of adding a few more guards for vfs constructs.
I've chosen the easy case of super_start_write() and super_end_write()
and converted eligible callers. I think long-term we can move a lot of
the manual placement to completely rely on guards - where sensible.
* patches from https://patch.msgid.link/20251104-work-guards-v1-0-5108ac78a171@kernel.org:
xfs: use super write guard in xfs_file_ioctl()
open: use super write guard in do_ftruncate()
btrfs: use super write guard in relocating_repair_kthread()
ext4: use super write guard in write_mmp_block()
btrfs: use super write guard in sb_start_write()
btrfs: use super write guard btrfs_run_defrag_inode()
btrfs: use super write guard in btrfs_reclaim_bgs_work()
fs: add super_write_guard
Link: https://patch.msgid.link/20251104-work-guards-v1-0-5108ac78a171@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/open.c')
| -rw-r--r-- | fs/open.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/open.c b/fs/open.c index 3d64372ecc67..1d73a17192da 100644 --- a/fs/open.c +++ b/fs/open.c @@ -191,12 +191,9 @@ int do_ftruncate(struct file *file, loff_t length, int small) if (error) return error; - sb_start_write(inode->i_sb); - error = do_truncate(file_mnt_idmap(file), dentry, length, - ATTR_MTIME | ATTR_CTIME, file); - sb_end_write(inode->i_sb); - - return error; + scoped_guard(super_write, inode->i_sb) + return do_truncate(file_mnt_idmap(file), dentry, length, + ATTR_MTIME | ATTR_CTIME, file); } int do_sys_ftruncate(unsigned int fd, loff_t length, int small) |