]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/xfs/xfs_symlink.c
xfs: fix COW writeback race
[karo-tx-linux.git] / fs / xfs / xfs_symlink.c
index 58142aeeeea69d2b191354911c0ebc07fd12f3fc..f2cb45ed1d54c3507ceb365a243e105f2e20e7fb 100644 (file)
@@ -238,8 +238,7 @@ xfs_symlink(
        if (error)
                goto out_release_inode;
 
-       xfs_ilock(dp, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL |
-                     XFS_IOLOCK_PARENT | XFS_ILOCK_PARENT);
+       xfs_ilock(dp, XFS_ILOCK_EXCL | XFS_ILOCK_PARENT);
        unlock_dp_on_error = true;
 
        /*
@@ -287,7 +286,7 @@ xfs_symlink(
         * the transaction cancel unlocking dp so don't do it explicitly in the
         * error path.
         */
-       xfs_trans_ijoin(tp, dp, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL);
+       xfs_trans_ijoin(tp, dp, XFS_ILOCK_EXCL);
        unlock_dp_on_error = false;
 
        /*
@@ -412,7 +411,7 @@ out_release_inode:
        xfs_qm_dqrele(pdqp);
 
        if (unlock_dp_on_error)
-               xfs_iunlock(dp, XFS_IOLOCK_EXCL | XFS_ILOCK_EXCL);
+               xfs_iunlock(dp, XFS_ILOCK_EXCL);
        return error;
 }