xfs: Fix the logic check for all quotas being turned off
During the review of seperate pquota inode patches, David noticed that the test to detect all quotas being turned off was incorrect, and hence the block was not freeing all the quota information. The check made sense in Irix, but in Linux, quota is turned off one at a time, which makes the test invalid for Linux. This problem existed since XFS was ported to Linux. David suggested to fix the problem by detecting when all quotas are turned off by checking m_qflags. Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
parent
92f8ff73f1
commit
c31ad439e8
|
@ -199,10 +199,9 @@ xfs_qm_scall_quotaoff(
|
|||
}
|
||||
|
||||
/*
|
||||
* If quotas is completely disabled, close shop.
|
||||
* If all quotas are completely turned off, close shop.
|
||||
*/
|
||||
if (((flags & XFS_MOUNT_QUOTA_ALL) == XFS_MOUNT_QUOTA_SET1) ||
|
||||
((flags & XFS_MOUNT_QUOTA_ALL) == XFS_MOUNT_QUOTA_SET2)) {
|
||||
if (mp->m_qflags == 0) {
|
||||
mutex_unlock(&q->qi_quotaofflock);
|
||||
xfs_qm_destroy_quotainfo(mp);
|
||||
return (0);
|
||||
|
|
|
@ -301,14 +301,6 @@ typedef struct xfs_qoff_logformat {
|
|||
(XFS_IS_PQUOTA_ON(mp) && \
|
||||
(mp->m_sb.sb_qflags & XFS_PQUOTA_CHKD) == 0))
|
||||
|
||||
#define XFS_MOUNT_QUOTA_SET1 (XFS_UQUOTA_ACCT|XFS_UQUOTA_ENFD|\
|
||||
XFS_UQUOTA_CHKD|XFS_GQUOTA_ACCT|\
|
||||
XFS_GQUOTA_ENFD|XFS_GQUOTA_CHKD)
|
||||
|
||||
#define XFS_MOUNT_QUOTA_SET2 (XFS_UQUOTA_ACCT|XFS_UQUOTA_ENFD|\
|
||||
XFS_UQUOTA_CHKD|XFS_PQUOTA_ACCT|\
|
||||
XFS_PQUOTA_ENFD|XFS_PQUOTA_CHKD)
|
||||
|
||||
#define XFS_MOUNT_QUOTA_ALL (XFS_UQUOTA_ACCT|XFS_UQUOTA_ENFD|\
|
||||
XFS_UQUOTA_CHKD|XFS_GQUOTA_ACCT|\
|
||||
XFS_GQUOTA_ENFD|XFS_GQUOTA_CHKD|\
|
||||
|
|
Loading…
Reference in New Issue