Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

Jan Kara a3942700 fbf64b3d

+20 -39
+20 -39
fs/xfs/xfs_qm_syscalls.c
··· 415 415 memset(out, 0, sizeof(fs_quota_stat_t)); 416 416 417 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 418 out->qs_flags = (__uint16_t) xfs_qm_export_flags(mp->m_qflags & 425 419 (XFS_ALL_QUOTA_ACCT| 426 420 XFS_ALL_QUOTA_ENFD)); 427 - if (q) { 428 - uip = q->qi_uquotaip; 429 - gip = q->qi_gquotaip; 430 - pip = q->qi_pquotaip; 431 - } 421 + uip = q->qi_uquotaip; 422 + gip = q->qi_gquotaip; 423 + pip = q->qi_pquotaip; 432 424 if (!uip && mp->m_sb.sb_uquotino != NULLFSINO) { 433 425 if (xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, 434 426 0, 0, &uip) == 0) ··· 466 474 if (temppqip) 467 475 IRELE(pip); 468 476 } 469 - if (q) { 470 - out->qs_incoredqs = q->qi_dquots; 471 - out->qs_btimelimit = q->qi_btimelimit; 472 - out->qs_itimelimit = q->qi_itimelimit; 473 - out->qs_rtbtimelimit = q->qi_rtbtimelimit; 474 - out->qs_bwarnlimit = q->qi_bwarnlimit; 475 - out->qs_iwarnlimit = q->qi_iwarnlimit; 476 - } 477 + out->qs_incoredqs = q->qi_dquots; 478 + out->qs_btimelimit = q->qi_btimelimit; 479 + out->qs_itimelimit = q->qi_itimelimit; 480 + out->qs_rtbtimelimit = q->qi_rtbtimelimit; 481 + out->qs_bwarnlimit = q->qi_bwarnlimit; 482 + out->qs_iwarnlimit = q->qi_iwarnlimit; 483 + 477 484 return 0; 478 485 } 479 486 ··· 493 502 bool tempgqip = false; 494 503 bool temppqip = false; 495 504 496 - if (!xfs_sb_version_hasquota(&mp->m_sb)) { 497 - out->qs_uquota.qfs_ino = NULLFSINO; 498 - out->qs_gquota.qfs_ino = NULLFSINO; 499 - out->qs_pquota.qfs_ino = NULLFSINO; 500 - return 0; 501 - } 502 - 503 505 out->qs_flags = (__uint16_t) xfs_qm_export_flags(mp->m_qflags & 504 506 (XFS_ALL_QUOTA_ACCT| 505 507 XFS_ALL_QUOTA_ENFD)); ··· 500 516 out->qs_gquota.qfs_ino = mp->m_sb.sb_gquotino; 501 517 out->qs_pquota.qfs_ino = mp->m_sb.sb_pquotino; 502 518 503 - if (q) { 504 - uip = q->qi_uquotaip; 505 - gip = q->qi_gquotaip; 506 - pip = q->qi_pquotaip; 507 - } 519 + uip = q->qi_uquotaip; 520 + gip = q->qi_gquotaip; 521 + pip = q->qi_pquotaip; 508 522 if (!uip && mp->m_sb.sb_uquotino != NULLFSINO) { 509 523 if (xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, 510 524 0, 0, &uip) == 0) ··· 537 555 if (temppqip) 538 556 IRELE(pip); 539 557 } 540 - if (q) { 541 - out->qs_incoredqs = q->qi_dquots; 542 - out->qs_btimelimit = q->qi_btimelimit; 543 - out->qs_itimelimit = q->qi_itimelimit; 544 - out->qs_rtbtimelimit = q->qi_rtbtimelimit; 545 - out->qs_bwarnlimit = q->qi_bwarnlimit; 546 - out->qs_iwarnlimit = q->qi_iwarnlimit; 547 - } 558 + out->qs_incoredqs = q->qi_dquots; 559 + out->qs_btimelimit = q->qi_btimelimit; 560 + out->qs_itimelimit = q->qi_itimelimit; 561 + out->qs_rtbtimelimit = q->qi_rtbtimelimit; 562 + out->qs_bwarnlimit = q->qi_bwarnlimit; 563 + out->qs_iwarnlimit = q->qi_iwarnlimit; 564 + 548 565 return 0; 549 566 } 550 567