diff options
author | Christoph Hellwig <hch@lst.de> | 2009-06-08 09:33:32 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@brick.lst.de> | 2009-06-08 09:33:32 -0400 |
commit | 7d095257e321214e4cf359abd131ba1f09c60cba (patch) | |
tree | 3f71e2650651616f8ba168b64a82ab48aedef14c /fs/xfs/xfs_attr.c | |
parent | 0c5e1ce89f1eacc366ec421c0f5f681159479c28 (diff) |
xfs: kill xfs_qmops
Kill the quota ops function vector and replace it with direct calls or
stubs in the CONFIG_XFS_QUOTA=n case.
Make sure we check XFS_IS_QUOTA_RUNNING in the right spots. We can remove
the number of those checks because the XFS_TRANS_DQ_DIRTY flag can't be set
otherwise.
This brings us back closer to the way this code worked in IRIX and earlier
Linux versions, but we keep a lot of the more useful factoring of common
code.
Eventually we should also kill xfs_qm_bhv.c, but that's left for a later
patch.
Reduces the size of the source code by about 250 lines and the size of
XFS module by about 1.5 kilobytes with quotas enabled:
text data bss dec hex filename
615957 2960 3848 622765 980ad fs/xfs/xfs.o
617231 3152 3848 624231 98667 fs/xfs/xfs.o.old
Fallout:
- xfs_qm_dqattach is split into xfs_qm_dqattach_locked which expects
the inode locked and xfs_qm_dqattach which does the locking around it,
thus removing XFS_QMOPT_ILOCKED.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Diffstat (limited to 'fs/xfs/xfs_attr.c')
-rw-r--r-- | fs/xfs/xfs_attr.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index 5fde1654b430..cd1008b1c4cd 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c | |||
@@ -249,8 +249,9 @@ xfs_attr_set_int(xfs_inode_t *dp, struct xfs_name *name, | |||
249 | /* | 249 | /* |
250 | * Attach the dquots to the inode. | 250 | * Attach the dquots to the inode. |
251 | */ | 251 | */ |
252 | if ((error = XFS_QM_DQATTACH(mp, dp, 0))) | 252 | error = xfs_qm_dqattach(dp, 0); |
253 | return (error); | 253 | if (error) |
254 | return error; | ||
254 | 255 | ||
255 | /* | 256 | /* |
256 | * If the inode doesn't have an attribute fork, add one. | 257 | * If the inode doesn't have an attribute fork, add one. |
@@ -311,7 +312,7 @@ xfs_attr_set_int(xfs_inode_t *dp, struct xfs_name *name, | |||
311 | } | 312 | } |
312 | xfs_ilock(dp, XFS_ILOCK_EXCL); | 313 | xfs_ilock(dp, XFS_ILOCK_EXCL); |
313 | 314 | ||
314 | error = XFS_TRANS_RESERVE_QUOTA_NBLKS(mp, args.trans, dp, args.total, 0, | 315 | error = xfs_trans_reserve_quota_nblks(args.trans, dp, args.total, 0, |
315 | rsvd ? XFS_QMOPT_RES_REGBLKS | XFS_QMOPT_FORCE_RES : | 316 | rsvd ? XFS_QMOPT_RES_REGBLKS | XFS_QMOPT_FORCE_RES : |
316 | XFS_QMOPT_RES_REGBLKS); | 317 | XFS_QMOPT_RES_REGBLKS); |
317 | if (error) { | 318 | if (error) { |
@@ -501,8 +502,9 @@ xfs_attr_remove_int(xfs_inode_t *dp, struct xfs_name *name, int flags) | |||
501 | /* | 502 | /* |
502 | * Attach the dquots to the inode. | 503 | * Attach the dquots to the inode. |
503 | */ | 504 | */ |
504 | if ((error = XFS_QM_DQATTACH(mp, dp, 0))) | 505 | error = xfs_qm_dqattach(dp, 0); |
505 | return (error); | 506 | if (error) |
507 | return error; | ||
506 | 508 | ||
507 | /* | 509 | /* |
508 | * Start our first transaction of the day. | 510 | * Start our first transaction of the day. |