[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