xfs: remove the per-filesystem list of dquots
Instead of keeping a separate per-filesystem list of dquots we can walk the radix tree for the two places where we need to iterate all quota structures. Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:

committed by
Ben Myers

parent
9f920f1164
commit
b84a3a9675
@@ -66,7 +66,6 @@ xfs_qm_scall_quotaoff(
|
||||
int error;
|
||||
uint inactivate_flags;
|
||||
xfs_qoff_logitem_t *qoffstart;
|
||||
int nculprits;
|
||||
|
||||
/*
|
||||
* No file system can have quotas enabled on disk but not in core.
|
||||
@@ -172,18 +171,13 @@ xfs_qm_scall_quotaoff(
|
||||
* This isn't protected by a particular lock directly, because we
|
||||
* don't want to take a mrlock every time we depend on quotas being on.
|
||||
*/
|
||||
mp->m_qflags &= ~(flags);
|
||||
mp->m_qflags &= ~flags;
|
||||
|
||||
/*
|
||||
* Go through all the dquots of this file system and purge them,
|
||||
* according to what was turned off. We may not be able to get rid
|
||||
* of all dquots, because dquots can have temporary references that
|
||||
* are not attached to inodes. eg. xfs_setattr, xfs_create.
|
||||
* So, if we couldn't purge all the dquots from the filesystem,
|
||||
* we can't get rid of the incore data structures.
|
||||
* according to what was turned off.
|
||||
*/
|
||||
while ((nculprits = xfs_qm_dqpurge_all(mp, dqtype)))
|
||||
delay(10 * nculprits);
|
||||
xfs_qm_dqpurge_all(mp, dqtype);
|
||||
|
||||
/*
|
||||
* Transactions that had started before ACTIVE state bit was cleared
|
||||
|
Reference in New Issue
Block a user