On 11/16/24 6:44 AM, Joanne Koong wrote: > 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. > > Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx> > --- > fs/fs-writeback.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c > index d8bec3c1bb1f..ad192db17ce4 100644 > --- a/fs/fs-writeback.c > +++ b/fs/fs-writeback.c > @@ -2659,6 +2659,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); Reviewed-by: Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx> -- Thanks, Jingbo