xfs: Remove mrlock wrapper
[linux-2.6-microblaze.git] / fs / xfs / xfs_inode.c
index 634df4f..110077c 100644 (file)
@@ -203,9 +203,9 @@ xfs_ilock(
        }
 
        if (lock_flags & XFS_ILOCK_EXCL)
-               mrupdate_nested(&ip->i_lock, XFS_ILOCK_DEP(lock_flags));
+               down_write_nested(&ip->i_lock, XFS_ILOCK_DEP(lock_flags));
        else if (lock_flags & XFS_ILOCK_SHARED)
-               mraccess_nested(&ip->i_lock, XFS_ILOCK_DEP(lock_flags));
+               down_read_nested(&ip->i_lock, XFS_ILOCK_DEP(lock_flags));
 }
 
 /*
@@ -246,10 +246,10 @@ xfs_ilock_nowait(
        }
 
        if (lock_flags & XFS_ILOCK_EXCL) {
-               if (!mrtryupdate(&ip->i_lock))
+               if (!down_write_trylock(&ip->i_lock))
                        goto out_undo_mmaplock;
        } else if (lock_flags & XFS_ILOCK_SHARED) {
-               if (!mrtryaccess(&ip->i_lock))
+               if (!down_read_trylock(&ip->i_lock))
                        goto out_undo_mmaplock;
        }
        return 1;
@@ -298,9 +298,9 @@ xfs_iunlock(
                up_read(&VFS_I(ip)->i_mapping->invalidate_lock);
 
        if (lock_flags & XFS_ILOCK_EXCL)
-               mrunlock_excl(&ip->i_lock);
+               up_write(&ip->i_lock);
        else if (lock_flags & XFS_ILOCK_SHARED)
-               mrunlock_shared(&ip->i_lock);
+               up_read(&ip->i_lock);
 
        trace_xfs_iunlock(ip, lock_flags, _RET_IP_);
 }
@@ -319,7 +319,7 @@ xfs_ilock_demote(
                ~(XFS_IOLOCK_EXCL|XFS_MMAPLOCK_EXCL|XFS_ILOCK_EXCL)) == 0);
 
        if (lock_flags & XFS_ILOCK_EXCL)
-               mrdemote(&ip->i_lock);
+               downgrade_write(&ip->i_lock);
        if (lock_flags & XFS_MMAPLOCK_EXCL)
                downgrade_write(&VFS_I(ip)->i_mapping->invalidate_lock);
        if (lock_flags & XFS_IOLOCK_EXCL)
@@ -333,10 +333,14 @@ xfs_assert_ilocked(
        struct xfs_inode        *ip,
        uint                    lock_flags)
 {
+       /*
+        * Sometimes we assert the ILOCK is held exclusively, but we're in
+        * a workqueue, so lockdep doesn't know we're the owner.
+        */
        if (lock_flags & XFS_ILOCK_SHARED)
-               rwsem_assert_held(&ip->i_lock.mr_lock);
+               rwsem_assert_held(&ip->i_lock);
        else if (lock_flags & XFS_ILOCK_EXCL)
-               ASSERT(ip->i_lock.mr_writer);
+               rwsem_assert_held_write_nolockdep(&ip->i_lock);
 
        if (lock_flags & XFS_MMAPLOCK_SHARED)
                rwsem_assert_held(&VFS_I(ip)->i_mapping->invalidate_lock);