mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 12:31:52 -04:00
fs: Drop sync_mapping_buffers() from __generic_file_fsync()
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>
This commit is contained in:
committed by
Christian Brauner
parent
635aa2f678
commit
aec4fe7cce
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user