mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 17:22:07 +00:00
fs/writeback: in wait_sb_inodes(), skip wait for AS_WRITEBACK_INDETERMINATE mappings
For filesystems with the AS_WRITEBACK_INDETERMINATE flag set, writeback operations may take an indeterminate time to complete. For example, writing data back to disk in FUSE filesystems depends on the userspace server successfully completing writeback. In this commit, wait_sb_inodes() skips waiting on writeback if the inode's mapping has AS_WRITEBACK_INDETERMINATE set, else sync(2) may take an indeterminate amount of time to complete. If the caller wishes to ensure the data for a mapping with the AS_WRITEBACK_INDETERMINATE flag set has actually been written back to disk, they should use fsync(2)/fdatasync(2) instead. Link: https://lkml.kernel.org/r/20241122232359.429647-4-joannelkoong@gmail.com Signed-off-by: Joanne Koong <joannelkoong@gmail.com> Reviewed-by: Jingbo Xu <jefflexu@linux.alibaba.com> Acked-by: Miklos Szeredi <mszeredi@redhat.com> Cc: Bernd Schubert <bernd.schubert@fastmail.fm> Cc: Josef Bacik <josef@toxicpanda.com> Cc: Shakeel Butt <shakeel.butt@linux.dev> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
26942ed372
commit
0da1c1a78d
@ -2681,6 +2681,9 @@ static void wait_sb_inodes(struct super_block *sb)
|
||||
if (!mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK))
|
||||
continue;
|
||||
|
||||
if (mapping_writeback_indeterminate(mapping))
|
||||
continue;
|
||||
|
||||
spin_unlock_irq(&sb->s_inode_wblist_lock);
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user