m_growlock should be a mutex
PATCH 1/1 m_growlock should be a mutex
m_growlock only needs plain binary mutex semantics, so use a struct mutex instead of a semaphore for it.
Signed-off-by Christoph Hellwig <[email protected]>
fs/xfs/xfs_fsops.c +4 -4
@@ -433,10 +433,10 @@ xfs_growfs_data( xfs_growfs_data_t *in) {int error; -if (!cpsema (&mp->m_growlock)) +if (!mutex_trylock (&mp->m_growlock))return XFS_ERROR (EWOULDBLOCK ); error =xfs_growfs_data_private (mp, in); -vsema (&mp->m_growlock); +mutex_unlock (&mp->m_growlock);return error; }
@@ -446,10 +446,10 @@ xfs_growfs_log( xfs_growfs_log_t *in) {int error; -if (!cpsema (&mp->m_growlock)) +if (!mutex_trylock (&mp->m_growlock))return XFS_ERROR (EWOULDBLOCK ); error =xfs_growfs_log_private (mp, in); -vsema (&mp->m_growlock); +mutex_unlock (&mp->m_growlock);return error; }
fs/xfs/xfs_mount.c +2 -2
@@ -139,7 +139,7 @@ xfs_mount_init(void)AIL_LOCKINIT (&mp->m_ail_lock,"xfs_ail" );spinlock_init (&mp->m_sb_lock,"xfs_sb" );mutex_init (&mp->m_ilock); -initnsema (&mp->m_growlock,1 ,"xfs_grow" ); +mutex_init (&mp->m_growlock);/* * Initialize the AIL. */
@@ -180,7 +180,7 @@ xfs_mount_free(AIL_LOCK_DESTROY (&mp->m_ail_lock);spinlock_destroy (&mp->m_sb_lock);mutex_destroy (&mp->m_ilock); -freesema (&mp->m_growlock); +mutex_destroy (&mp->m_growlock);if (mp->m_quotainfo)XFS_QM_DONE (mp);
fs/xfs/xfs_mount.h +1 -1
@@ -377,7 +377,7 @@ typedef struct xfs_mount {uint m_in_maxlevels;/* XFS_IN_MAXLEVELS */ struct xfs_perag *m_perag;/* per-ag accounting info */ struct rw_semaphore m_peraglock;/* lock for m_perag (pointer) */ -sema_t m_growlock;/* growfs mutex */ +struct mutex m_growlock;/* growfs mutex */ int m_fixedfsid[2 ];/* unchanged for life of FS */ uint m_dmevmask;/* DMI events for this FS */ __uint64_t m_flags;/* global mount flags */