[PATCH 2/7] xfs: Use delayed write for inodes rather than async

Christoph Hellwig hch at infradead.org
Mon Jan 25 05:53:08 CST 2010


> diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c
> index 98b8937..ca0cc59 100644
> --- a/fs/xfs/linux-2.6/xfs_sync.c
> +++ b/fs/xfs/linux-2.6/xfs_sync.c
> @@ -270,8 +270,7 @@ xfs_sync_inode_attr(
>  		goto out_unlock;
>  	}
>  
> -	error = xfs_iflush(ip, (flags & SYNC_WAIT) ?
> -			   XFS_IFLUSH_SYNC : XFS_IFLUSH_DELWRI);
> +	error = xfs_iflush(ip, (flags & SYNC_WAIT));

No need for the masking here, as xfs_iflush simply ignores SYNC_TRYLOCK.

>  	/* Now we have an inode that needs flushing */
>  	error = xfs_iflush(ip, sync_mode);
> +	if (!(sync_mode & SYNC_WAIT))
> +		goto requeue_no_flock;

So for the !wait case we entirely ignore the return value?  We should
at least check for an I/O error here I think.  Also in this context
the requeue label name doesn't fit too well, even if it's the same
action as the requeue.




More information about the xfs mailing list