aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2014-12-12 14:53:36 -0500
committerJan Kara <jack@suse.cz>2015-01-21 13:21:33 -0500
commita39427007e7ccd83dbb7cd81b18156cebeab4d1e (patch)
tree19c01a46a6b488755ed7a35e8adeec7764424492
parentfbf64b3df34e6640fbbc89d6daa5f79833036890 (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.c59
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