diff options
author | Jan Kara <jack@suse.cz> | 2014-12-12 14:53:36 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2015-01-21 13:21:33 -0500 |
commit | a39427007e7ccd83dbb7cd81b18156cebeab4d1e (patch) | |
tree | 19c01a46a6b488755ed7a35e8adeec7764424492 | |
parent | fbf64b3df34e6640fbbc89d6daa5f79833036890 (diff) |
xfs: Remove some pointless quota checks
xfs_fs_get_xstate() and xfs_fs_get_xstatev() check whether there's quota
running before calling xfs_qm_scall_getqstat() or
xfs_qm_scall_getqstatv(). Thus we are certain that superblock supports
quota and xfs_sb_version_hasquota() check is pointless. Similarly we
know that when quota is running, mp->m_quotainfo will be allocated.
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | fs/xfs/xfs_qm_syscalls.c | 59 |
1 files changed, 20 insertions, 39 deletions
diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c index b7a8f5665d7b..42a15ddedb07 100644 --- a/fs/xfs/xfs_qm_syscalls.c +++ b/fs/xfs/xfs_qm_syscalls.c | |||
@@ -415,20 +415,12 @@ xfs_qm_scall_getqstat( | |||
415 | memset(out, 0, sizeof(fs_quota_stat_t)); | 415 | memset(out, 0, sizeof(fs_quota_stat_t)); |
416 | 416 | ||
417 | out->qs_version = FS_QSTAT_VERSION; | 417 | out->qs_version = FS_QSTAT_VERSION; |
418 | if (!xfs_sb_version_hasquota(&mp->m_sb)) { | ||
419 | out->qs_uquota.qfs_ino = NULLFSINO; | ||
420 | out->qs_gquota.qfs_ino = NULLFSINO; | ||
421 | return 0; | ||
422 | } | ||
423 | |||
424 | out->qs_flags = (__uint16_t) xfs_qm_export_flags(mp->m_qflags & | 418 | out->qs_flags = (__uint16_t) xfs_qm_export_flags(mp->m_qflags & |
425 | (XFS_ALL_QUOTA_ACCT| | 419 | (XFS_ALL_QUOTA_ACCT| |
426 | XFS_ALL_QUOTA_ENFD)); | 420 | XFS_ALL_QUOTA_ENFD)); |
427 | if (q) { | 421 | uip = q->qi_uquotaip; |
428 | uip = q->qi_uquotaip; | 422 | gip = q->qi_gquotaip; |
429 | gip = q->qi_gquotaip; | 423 | pip = q->qi_pquotaip; |
430 | pip = q->qi_pquotaip; | ||
431 | } | ||
432 | if (!uip && mp->m_sb.sb_uquotino != NULLFSINO) { | 424 | if (!uip && mp->m_sb.sb_uquotino != NULLFSINO) { |
433 | if (xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, | 425 | if (xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, |
434 | 0, 0, &uip) == 0) | 426 | 0, 0, &uip) == 0) |
@@ -474,14 +466,13 @@ xfs_qm_scall_getqstat( | |||
474 | if (temppqip) | 466 | if (temppqip) |
475 | IRELE(pip); | 467 | IRELE(pip); |
476 | } | 468 | } |
477 | if (q) { | 469 | out->qs_incoredqs = q->qi_dquots; |
478 | out->qs_incoredqs = q->qi_dquots; | 470 | out->qs_btimelimit = q->qi_btimelimit; |
479 | out->qs_btimelimit = q->qi_btimelimit; | 471 | out->qs_itimelimit = q->qi_itimelimit; |
480 | out->qs_itimelimit = q->qi_itimelimit; | 472 | out->qs_rtbtimelimit = q->qi_rtbtimelimit; |
481 | out->qs_rtbtimelimit = q->qi_rtbtimelimit; | 473 | out->qs_bwarnlimit = q->qi_bwarnlimit; |
482 | out->qs_bwarnlimit = q->qi_bwarnlimit; | 474 | out->qs_iwarnlimit = q->qi_iwarnlimit; |
483 | out->qs_iwarnlimit = q->qi_iwarnlimit; | 475 | |
484 | } | ||
485 | return 0; | 476 | return 0; |
486 | } | 477 | } |
487 | 478 | ||
@@ -502,13 +493,6 @@ xfs_qm_scall_getqstatv( | |||
502 | bool tempgqip = false; | 493 | bool tempgqip = false; |
503 | bool temppqip = false; | 494 | bool temppqip = false; |
504 | 495 | ||
505 | if (!xfs_sb_version_hasquota(&mp->m_sb)) { | ||
506 | out->qs_uquota.qfs_ino = NULLFSINO; | ||
507 | out->qs_gquota.qfs_ino = NULLFSINO; | ||
508 | out->qs_pquota.qfs_ino = NULLFSINO; | ||
509 | return 0; | ||
510 | } | ||
511 | |||
512 | out->qs_flags = (__uint16_t) xfs_qm_export_flags(mp->m_qflags & | 496 | out->qs_flags = (__uint16_t) xfs_qm_export_flags(mp->m_qflags & |
513 | (XFS_ALL_QUOTA_ACCT| | 497 | (XFS_ALL_QUOTA_ACCT| |
514 | XFS_ALL_QUOTA_ENFD)); | 498 | XFS_ALL_QUOTA_ENFD)); |
@@ -516,11 +500,9 @@ xfs_qm_scall_getqstatv( | |||
516 | out->qs_gquota.qfs_ino = mp->m_sb.sb_gquotino; | 500 | out->qs_gquota.qfs_ino = mp->m_sb.sb_gquotino; |
517 | out->qs_pquota.qfs_ino = mp->m_sb.sb_pquotino; | 501 | out->qs_pquota.qfs_ino = mp->m_sb.sb_pquotino; |
518 | 502 | ||
519 | if (q) { | 503 | uip = q->qi_uquotaip; |
520 | uip = q->qi_uquotaip; | 504 | gip = q->qi_gquotaip; |
521 | gip = q->qi_gquotaip; | 505 | pip = q->qi_pquotaip; |
522 | pip = q->qi_pquotaip; | ||
523 | } | ||
524 | if (!uip && mp->m_sb.sb_uquotino != NULLFSINO) { | 506 | if (!uip && mp->m_sb.sb_uquotino != NULLFSINO) { |
525 | if (xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, | 507 | if (xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, |
526 | 0, 0, &uip) == 0) | 508 | 0, 0, &uip) == 0) |
@@ -555,14 +537,13 @@ xfs_qm_scall_getqstatv( | |||
555 | if (temppqip) | 537 | if (temppqip) |
556 | IRELE(pip); | 538 | IRELE(pip); |
557 | } | 539 | } |
558 | if (q) { | 540 | out->qs_incoredqs = q->qi_dquots; |
559 | out->qs_incoredqs = q->qi_dquots; | 541 | out->qs_btimelimit = q->qi_btimelimit; |
560 | out->qs_btimelimit = q->qi_btimelimit; | 542 | out->qs_itimelimit = q->qi_itimelimit; |
561 | out->qs_itimelimit = q->qi_itimelimit; | 543 | out->qs_rtbtimelimit = q->qi_rtbtimelimit; |
562 | out->qs_rtbtimelimit = q->qi_rtbtimelimit; | 544 | out->qs_bwarnlimit = q->qi_bwarnlimit; |
563 | out->qs_bwarnlimit = q->qi_bwarnlimit; | 545 | out->qs_iwarnlimit = q->qi_iwarnlimit; |
564 | out->qs_iwarnlimit = q->qi_iwarnlimit; | 546 | |
565 | } | ||
566 | return 0; | 547 | return 0; |
567 | } | 548 | } |
568 | 549 | ||