diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-04-22 03:34:00 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-04-29 01:54:02 -0400 |
commit | 579aa9caf552c639fc78168db4cfe7ffcf00c3b3 (patch) | |
tree | 2fb1e057487afe46d03bc536fcba380dc0117cfb /fs/xfs/quota/xfs_qm.c | |
parent | eca450b7c23f804597b87085b2a05bfc5b3ccb8b (diff) |
[XFS] shrink mrlock_t
The writer field is not needed for non_DEBU builds so remove it. While
we're at i also clean up the interface for is locked asserts to go through
and xfs_iget.c helper with an interface like the xfs_ilock routines to
isolated the XFS codebase from mrlock internals. That way we can kill
mrlock_t entirely once rw_semaphores grow an islocked facility. Also
remove unused flags to the ilock family of functions.
SGI-PV: 976035
SGI-Modid: xfs-linux-melb:xfs-kern:30902a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/quota/xfs_qm.c')
-rw-r--r-- | fs/xfs/quota/xfs_qm.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index fb624a17f15b..d31cce1165c5 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c | |||
@@ -670,7 +670,7 @@ xfs_qm_dqattach_one( | |||
670 | xfs_dquot_t *dqp; | 670 | xfs_dquot_t *dqp; |
671 | int error; | 671 | int error; |
672 | 672 | ||
673 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 673 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
674 | error = 0; | 674 | error = 0; |
675 | /* | 675 | /* |
676 | * See if we already have it in the inode itself. IO_idqpp is | 676 | * See if we already have it in the inode itself. IO_idqpp is |
@@ -874,7 +874,7 @@ xfs_qm_dqattach( | |||
874 | return 0; | 874 | return 0; |
875 | 875 | ||
876 | ASSERT((flags & XFS_QMOPT_ILOCKED) == 0 || | 876 | ASSERT((flags & XFS_QMOPT_ILOCKED) == 0 || |
877 | XFS_ISLOCKED_INODE_EXCL(ip)); | 877 | xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
878 | 878 | ||
879 | if (! (flags & XFS_QMOPT_ILOCKED)) | 879 | if (! (flags & XFS_QMOPT_ILOCKED)) |
880 | xfs_ilock(ip, XFS_ILOCK_EXCL); | 880 | xfs_ilock(ip, XFS_ILOCK_EXCL); |
@@ -888,7 +888,8 @@ xfs_qm_dqattach( | |||
888 | goto done; | 888 | goto done; |
889 | nquotas++; | 889 | nquotas++; |
890 | } | 890 | } |
891 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 891 | |
892 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); | ||
892 | if (XFS_IS_OQUOTA_ON(mp)) { | 893 | if (XFS_IS_OQUOTA_ON(mp)) { |
893 | error = XFS_IS_GQUOTA_ON(mp) ? | 894 | error = XFS_IS_GQUOTA_ON(mp) ? |
894 | xfs_qm_dqattach_one(ip, ip->i_d.di_gid, XFS_DQ_GROUP, | 895 | xfs_qm_dqattach_one(ip, ip->i_d.di_gid, XFS_DQ_GROUP, |
@@ -913,7 +914,7 @@ xfs_qm_dqattach( | |||
913 | * This WON'T, in general, result in a thrash. | 914 | * This WON'T, in general, result in a thrash. |
914 | */ | 915 | */ |
915 | if (nquotas == 2) { | 916 | if (nquotas == 2) { |
916 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 917 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
917 | ASSERT(ip->i_udquot); | 918 | ASSERT(ip->i_udquot); |
918 | ASSERT(ip->i_gdquot); | 919 | ASSERT(ip->i_gdquot); |
919 | 920 | ||
@@ -956,7 +957,7 @@ xfs_qm_dqattach( | |||
956 | 957 | ||
957 | #ifdef QUOTADEBUG | 958 | #ifdef QUOTADEBUG |
958 | else | 959 | else |
959 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 960 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
960 | #endif | 961 | #endif |
961 | return error; | 962 | return error; |
962 | } | 963 | } |
@@ -1291,7 +1292,7 @@ xfs_qm_dqget_noattach( | |||
1291 | xfs_mount_t *mp; | 1292 | xfs_mount_t *mp; |
1292 | xfs_dquot_t *udqp, *gdqp; | 1293 | xfs_dquot_t *udqp, *gdqp; |
1293 | 1294 | ||
1294 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 1295 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
1295 | mp = ip->i_mount; | 1296 | mp = ip->i_mount; |
1296 | udqp = NULL; | 1297 | udqp = NULL; |
1297 | gdqp = NULL; | 1298 | gdqp = NULL; |
@@ -1392,7 +1393,7 @@ xfs_qm_qino_alloc( | |||
1392 | * Keep an extra reference to this quota inode. This inode is | 1393 | * Keep an extra reference to this quota inode. This inode is |
1393 | * locked exclusively and joined to the transaction already. | 1394 | * locked exclusively and joined to the transaction already. |
1394 | */ | 1395 | */ |
1395 | ASSERT(XFS_ISLOCKED_INODE_EXCL(*ip)); | 1396 | ASSERT(xfs_isilocked(*ip, XFS_ILOCK_EXCL)); |
1396 | VN_HOLD(XFS_ITOV((*ip))); | 1397 | VN_HOLD(XFS_ITOV((*ip))); |
1397 | 1398 | ||
1398 | /* | 1399 | /* |
@@ -2557,7 +2558,7 @@ xfs_qm_vop_chown( | |||
2557 | uint bfield = XFS_IS_REALTIME_INODE(ip) ? | 2558 | uint bfield = XFS_IS_REALTIME_INODE(ip) ? |
2558 | XFS_TRANS_DQ_RTBCOUNT : XFS_TRANS_DQ_BCOUNT; | 2559 | XFS_TRANS_DQ_RTBCOUNT : XFS_TRANS_DQ_BCOUNT; |
2559 | 2560 | ||
2560 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 2561 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
2561 | ASSERT(XFS_IS_QUOTA_RUNNING(ip->i_mount)); | 2562 | ASSERT(XFS_IS_QUOTA_RUNNING(ip->i_mount)); |
2562 | 2563 | ||
2563 | /* old dquot */ | 2564 | /* old dquot */ |
@@ -2601,7 +2602,7 @@ xfs_qm_vop_chown_reserve( | |||
2601 | uint delblks, blkflags, prjflags = 0; | 2602 | uint delblks, blkflags, prjflags = 0; |
2602 | xfs_dquot_t *unresudq, *unresgdq, *delblksudq, *delblksgdq; | 2603 | xfs_dquot_t *unresudq, *unresgdq, *delblksudq, *delblksgdq; |
2603 | 2604 | ||
2604 | ASSERT(XFS_ISLOCKED_INODE(ip)); | 2605 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_ILOCK_SHARED)); |
2605 | mp = ip->i_mount; | 2606 | mp = ip->i_mount; |
2606 | ASSERT(XFS_IS_QUOTA_RUNNING(mp)); | 2607 | ASSERT(XFS_IS_QUOTA_RUNNING(mp)); |
2607 | 2608 | ||
@@ -2711,7 +2712,7 @@ xfs_qm_vop_dqattach_and_dqmod_newinode( | |||
2711 | if (!XFS_IS_QUOTA_ON(tp->t_mountp)) | 2712 | if (!XFS_IS_QUOTA_ON(tp->t_mountp)) |
2712 | return; | 2713 | return; |
2713 | 2714 | ||
2714 | ASSERT(XFS_ISLOCKED_INODE_EXCL(ip)); | 2715 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
2715 | ASSERT(XFS_IS_QUOTA_RUNNING(tp->t_mountp)); | 2716 | ASSERT(XFS_IS_QUOTA_RUNNING(tp->t_mountp)); |
2716 | 2717 | ||
2717 | if (udqp) { | 2718 | if (udqp) { |