[PATCH 2/7] xfs: split inode flushing from xfs_sync_inodes_ag

Sujit Karataparambil sjt.kar at gmail.com
Thu May 14 23:52:31 CDT 2009


> +STATIC int
> +xfs_sync_inode_attr(
> +       struct xfs_inode        *ip,
> +       int                     flags)
> +{
> +       int                     error = 0;
> +
> +       xfs_ilock(ip, XFS_ILOCK_SHARED);
> +       if (xfs_inode_clean(ip))
> +               goto out_unlock;
> +       if (!xfs_iflock_nowait(ip)) {
> +               if (!(flags & SYNC_WAIT))
> +                       goto out_unlock;
> +               xfs_iflock(ip);
> +       }
> +
> +       if (xfs_inode_clean(ip)) {
> +               xfs_ifunlock(ip);
> +               goto out_unlock;
> +       }
> +
> +       error = xfs_iflush(ip, XFS_IFLUSH_SYNC);
> +
> + out_unlock:
> +       xfs_iunlock(ip, XFS_ILOCK_SHARED);
> +       return error;

here also should there be an
xfs_sync_inode_data(ip, flags);
xfs_iflush(ip, XFS_IFLUSH_SYNC);

in out_unlock.



-- 
-- Sujit K M




More information about the xfs mailing list