mbox series

[v12,0/4] xfs: Remove wrappers for some semaphores

Message ID 20201016021005.548850-1-preichl@redhat.com (mailing list archive)
Headers show
Series xfs: Remove wrappers for some semaphores | expand

Message

Pavel Reichl Oct. 16, 2020, 2:10 a.m. UTC
Remove some wrappers that we have in XFS around the read-write semaphore
locks.

The goal of this cleanup is to remove mrlock_t structure and its mr*()
wrapper functions and replace it with native rw_semaphore type and its
native calls.

Changes in version 8:
* Patchset was rebased so it applies cleanly.
* The patch 'xfs: replace mrlock_t with rw_semaphores' contains change in
xfs_btree.c which transfers ownership of lock so lockdep won't assert
(This was reported by Darrick and proposed change fixes this issue).

Changes in version 9:
*Fixed white space in patch 'xfs: Refactor xfs_isilocked()'
*Updated code comments as suggested by djwong (thanks!) in patch: 'xfs: replace mrlock_t with rw_semaphores'

Changes in version 10:
* Fixed use-after-free in 'xfs: replace mrlock_t with rw_semaphores' (thanks Darrick)
* Moved part of refactor of xfs_isilocked() from patch 'xfs: Refactor xfs_isilocked()' to patch 'xfs: replace mrlock_t with rw_semaphores' - to fix compilation error
* Typo in comment in 'xfs: replace mrlock_t with rw_semaphores'

Changes in version 11:
* Dropped typedef xfs_node_t from xfs_isilocked in 'xfs: Refactor xfs_isilocked()'

Changes in version 12:

xfs: Refactor xfs_isilocked()
* Moved shifting lock_flags from xfs_ilocked() to __xfs_rwsem_ilocked()
* Changed comment in __xfs_rwsem_islocked()
* Removed the arg variable from __xfs_rwsem_islocked()
* Removed the extra parentheses around the lock 'defines'

xfs: replace mrlock_t with rw_semaphores
* Moved shifting lock_flags from xfs_ilocked() to __xfs_rwsem_ilocked()
* Updated comment in xfs_btree_split() before the rwsem_release()
* Added assert to  xfs_isilocked() for IOLOCK flags

Pavel Reichl (4):
  xfs: Refactor xfs_isilocked()
  xfs: clean up whitespace in xfs_isilocked() calls
  xfs: xfs_isilocked() can only check a single lock type
  xfs: replace mrlock_t with rw_semaphores

 fs/xfs/libxfs/xfs_bmap.c  |  8 ++--
 fs/xfs/libxfs/xfs_btree.c | 25 +++++++++++
 fs/xfs/mrlock.h           | 78 --------------------------------
 fs/xfs/xfs_file.c         |  3 +-
 fs/xfs/xfs_inode.c        | 95 +++++++++++++++++++++++++--------------
 fs/xfs/xfs_inode.h        | 25 +++++++----
 fs/xfs/xfs_iops.c         |  4 +-
 fs/xfs/xfs_linux.h        |  2 +-
 fs/xfs/xfs_qm.c           |  2 +-
 fs/xfs/xfs_super.c        |  6 +--
 10 files changed, 115 insertions(+), 133 deletions(-)
 delete mode 100644 fs/xfs/mrlock.h