diff options
Diffstat (limited to 'fs/xfs/quota/xfs_qm.c')
-rw-r--r-- | fs/xfs/quota/xfs_qm.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 1de2acdc7f70..3e4a8ad8a34c 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c | |||
@@ -388,6 +388,17 @@ xfs_qm_mount_quotas( | |||
388 | return XFS_ERROR(error); | 388 | return XFS_ERROR(error); |
389 | } | 389 | } |
390 | } | 390 | } |
391 | /* | ||
392 | * If one type of quotas is off, then it will lose its | ||
393 | * quotachecked status, since we won't be doing accounting for | ||
394 | * that type anymore. | ||
395 | */ | ||
396 | if (!XFS_IS_UQUOTA_ON(mp)) { | ||
397 | mp->m_qflags &= ~XFS_UQUOTA_CHKD; | ||
398 | } | ||
399 | if (!(XFS_IS_GQUOTA_ON(mp) || XFS_IS_PQUOTA_ON(mp))) { | ||
400 | mp->m_qflags &= ~XFS_OQUOTA_CHKD; | ||
401 | } | ||
391 | 402 | ||
392 | write_changes: | 403 | write_changes: |
393 | /* | 404 | /* |
@@ -1453,8 +1464,7 @@ xfs_qm_qino_alloc( | |||
1453 | XFS_SB_UNLOCK(mp, s); | 1464 | XFS_SB_UNLOCK(mp, s); |
1454 | xfs_mod_sb(tp, sbfields); | 1465 | xfs_mod_sb(tp, sbfields); |
1455 | 1466 | ||
1456 | if ((error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES, | 1467 | if ((error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES))) { |
1457 | NULL))) { | ||
1458 | xfs_fs_cmn_err(CE_ALERT, mp, "XFS qino_alloc failed!"); | 1468 | xfs_fs_cmn_err(CE_ALERT, mp, "XFS qino_alloc failed!"); |
1459 | return error; | 1469 | return error; |
1460 | } | 1470 | } |
@@ -2405,7 +2415,7 @@ xfs_qm_write_sb_changes( | |||
2405 | } | 2415 | } |
2406 | 2416 | ||
2407 | xfs_mod_sb(tp, flags); | 2417 | xfs_mod_sb(tp, flags); |
2408 | (void) xfs_trans_commit(tp, 0, NULL); | 2418 | (void) xfs_trans_commit(tp, 0); |
2409 | 2419 | ||
2410 | return 0; | 2420 | return 0; |
2411 | } | 2421 | } |