]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
xfs: Use rwsem_is_write_locked()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 6 Sep 2023 18:44:49 +0000 (14:44 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 6 Sep 2023 20:57:49 +0000 (16:57 -0400)
This gives slightly better runtime checking when lockdep is disabled.
It also lets us avoid using the mr_writer field to check the XFS ILOCK.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
fs/xfs/xfs_inode.c

index 9e62cc50014010df3837f321e0de3db17ee133dd..3f1aa367f45af883ed0157c6c592e3f2109e273e 100644 (file)
@@ -339,8 +339,11 @@ __xfs_rwsem_islocked(
        struct rw_semaphore     *rwsem,
        bool                    shared)
 {
-       if (!debug_locks)
+       if (!debug_locks) {
+               if (!shared)
+                       return rwsem_is_write_locked(rwsem);
                return rwsem_is_locked(rwsem);
+       }
 
        if (!shared)
                return lockdep_is_held_type(rwsem, 0);
@@ -360,9 +363,8 @@ xfs_isilocked(
        uint                    lock_flags)
 {
        if (lock_flags & (XFS_ILOCK_EXCL|XFS_ILOCK_SHARED)) {
-               if (!(lock_flags & XFS_ILOCK_SHARED))
-                       return !!ip->i_lock.mr_writer;
-               return rwsem_is_locked(&ip->i_lock.mr_lock);
+               return __xfs_rwsem_islocked(&ip->i_lock.mr_lock,
+                               (lock_flags & XFS_ILOCK_SHARED));
        }
 
        if (lock_flags & (XFS_MMAPLOCK_EXCL|XFS_MMAPLOCK_SHARED)) {