xfs: Add async buffered write support
[linux-2.6-microblaze.git] / fs / xfs / xfs_iomap.c
index bcf7c36..5d50fed 100644 (file)
@@ -886,6 +886,7 @@ xfs_buffered_write_iomap_begin(
        bool                    eof = false, cow_eof = false, shared = false;
        int                     allocfork = XFS_DATA_FORK;
        int                     error = 0;
+       unsigned int            lockmode = XFS_ILOCK_EXCL;
 
        if (xfs_is_shutdown(mp))
                return -EIO;
@@ -897,7 +898,9 @@ xfs_buffered_write_iomap_begin(
 
        ASSERT(!XFS_IS_REALTIME_INODE(ip));
 
-       xfs_ilock(ip, XFS_ILOCK_EXCL);
+       error = xfs_ilock_for_iomap(ip, flags, &lockmode);
+       if (error)
+               return error;
 
        if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(&ip->i_df)) ||
            XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {