Re: [PATCH v5 3/5] fs/writeback: in wait_sb_inodes(), skip wait for AS_WRITEBACK_INDETERMINATE mappings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux