aboutsummaryrefslogtreecommitdiffstats
path: root/fs/open.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2025-12-01 14:39:03 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2025-12-01 14:39:03 -0800
commit978d337c2ed6e5313ee426871a410eddc796ccfd (patch)
treeb12791ca01da7a745ed8728f43462fabfeecf352 /fs/open.c
parentafdf0fb340948a8c0f581ed1dc42828af89b80b6 (diff)
parent73fd0dba0beb1d2d1695ee5452eac8dfabce3f9e (diff)
downloadtip-978d337c2ed6e5313ee426871a410eddc796ccfd.tar.gz
Merge tag 'vfs-6.19-rc1.guards' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull superblock lock guard updates from Christian Brauner: "This starts the work of introducing guards for superblock related locks. Introduce super_write_guard for scoped superblock write protection. This provides a guard-based alternative to the manual sb_start_write() and sb_end_write() pattern, allowing the compiler to automatically handle the cleanup" * tag 'vfs-6.19-rc1.guards' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: 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
Diffstat (limited to 'fs/open.c')
-rw-r--r--fs/open.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/open.c b/fs/open.c
index e3c737ede4e494..2a2cf9007900dc 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)