diff options
| -rw-r--r-- | fs/xfs/xfs_qm_syscalls.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c index 74fca68e43b6..b7a8f5665d7b 100644 --- a/fs/xfs/xfs_qm_syscalls.c +++ b/fs/xfs/xfs_qm_syscalls.c | |||
| @@ -330,22 +330,16 @@ xfs_qm_scall_quotaon( | |||
| 330 | return -EINVAL; | 330 | return -EINVAL; |
| 331 | } | 331 | } |
| 332 | 332 | ||
| 333 | /* No fs can turn on quotas with a delayed effect */ | ||
| 334 | ASSERT((flags & XFS_ALL_QUOTA_ACCT) == 0); | ||
| 335 | |||
| 336 | /* | 333 | /* |
| 337 | * Can't enforce without accounting. We check the superblock | 334 | * Can't enforce without accounting. We check the superblock |
| 338 | * qflags here instead of m_qflags because rootfs can have | 335 | * qflags here instead of m_qflags because rootfs can have |
| 339 | * quota acct on ondisk without m_qflags' knowing. | 336 | * quota acct on ondisk without m_qflags' knowing. |
| 340 | */ | 337 | */ |
| 341 | if (((flags & XFS_UQUOTA_ACCT) == 0 && | 338 | if (((mp->m_sb.sb_qflags & XFS_UQUOTA_ACCT) == 0 && |
| 342 | (mp->m_sb.sb_qflags & XFS_UQUOTA_ACCT) == 0 && | ||
| 343 | (flags & XFS_UQUOTA_ENFD)) || | 339 | (flags & XFS_UQUOTA_ENFD)) || |
| 344 | ((flags & XFS_GQUOTA_ACCT) == 0 && | 340 | ((mp->m_sb.sb_qflags & XFS_GQUOTA_ACCT) == 0 && |
| 345 | (mp->m_sb.sb_qflags & XFS_GQUOTA_ACCT) == 0 && | ||
| 346 | (flags & XFS_GQUOTA_ENFD)) || | 341 | (flags & XFS_GQUOTA_ENFD)) || |
| 347 | ((flags & XFS_PQUOTA_ACCT) == 0 && | 342 | ((mp->m_sb.sb_qflags & XFS_PQUOTA_ACCT) == 0 && |
| 348 | (mp->m_sb.sb_qflags & XFS_PQUOTA_ACCT) == 0 && | ||
| 349 | (flags & XFS_PQUOTA_ENFD))) { | 343 | (flags & XFS_PQUOTA_ENFD))) { |
| 350 | xfs_debug(mp, | 344 | xfs_debug(mp, |
| 351 | "%s: Can't enforce without acct, flags=%x sbflags=%x", | 345 | "%s: Can't enforce without acct, flags=%x sbflags=%x", |
| @@ -384,8 +378,7 @@ xfs_qm_scall_quotaon( | |||
| 384 | ((mp->m_sb.sb_qflags & XFS_PQUOTA_ACCT) != | 378 | ((mp->m_sb.sb_qflags & XFS_PQUOTA_ACCT) != |
| 385 | (mp->m_qflags & XFS_PQUOTA_ACCT)) || | 379 | (mp->m_qflags & XFS_PQUOTA_ACCT)) || |
| 386 | ((mp->m_sb.sb_qflags & XFS_GQUOTA_ACCT) != | 380 | ((mp->m_sb.sb_qflags & XFS_GQUOTA_ACCT) != |
| 387 | (mp->m_qflags & XFS_GQUOTA_ACCT)) || | 381 | (mp->m_qflags & XFS_GQUOTA_ACCT))) |
| 388 | (flags & XFS_ALL_QUOTA_ENFD) == 0) | ||
| 389 | return 0; | 382 | return 0; |
| 390 | 383 | ||
| 391 | if (! XFS_IS_QUOTA_RUNNING(mp)) | 384 | if (! XFS_IS_QUOTA_RUNNING(mp)) |
