]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs: Drop sync_mapping_buffers() from __generic_file_fsync()
authorJan Kara <jack@suse.cz>
Thu, 26 Mar 2026 09:54:07 +0000 (10:54 +0100)
committerChristian Brauner <brauner@kernel.org>
Thu, 26 Mar 2026 14:03:28 +0000 (15:03 +0100)
No filesystem calling __generic_file_fsync() uses metadata bh tracking.
Drop sync_mapping_buffers() call from __generic_file_fsync() as it's
pointless now which untangles buffer head handling from fs/libfs.c.

Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20260326095354.16340-55-jack@suse.cz
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/libfs.c

index ed7242d614fe2737755c2edd3f64930cb19d4da4..e67e43c6509aa5d9ec8accdb15f9baad992d7c01 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/exportfs.h>
 #include <linux/iversion.h>
 #include <linux/writeback.h>
-#include <linux/buffer_head.h> /* sync_mapping_buffers */
 #include <linux/fs_context.h>
 #include <linux/pseudo_fs.h>
 #include <linux/fsnotify.h>
@@ -1555,22 +1554,18 @@ int __generic_file_fsync(struct file *file, loff_t start, loff_t end,
 {
        struct inode *inode = file->f_mapping->host;
        int err;
-       int ret;
+       int ret = 0;
 
        err = file_write_and_wait_range(file, start, end);
        if (err)
                return err;
 
-       ret = sync_mapping_buffers(inode->i_mapping);
        if (!(inode_state_read_once(inode) & I_DIRTY_ALL))
                goto out;
        if (datasync && !(inode_state_read_once(inode) & I_DIRTY_DATASYNC))
                goto out;
 
-       err = sync_inode_metadata(inode, 1);
-       if (ret == 0)
-               ret = err;
-
+       ret = sync_inode_metadata(inode, 1);
 out:
        /* check and advance again to catch errors after syncing out buffers */
        err = file_check_and_advance_wb_err(file);