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

xfs: set the scrub AG number in xchk_ag_read_headers

Since xchk_ag_read_headers initializes fields in struct xchk_ag, we
might as well set the AG number and save the callers the trouble.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>

+14 -23
+6 -12
fs/xfs/scrub/agheader.c
··· 508 508 struct xfs_mount *mp = sc->mp; 509 509 struct xfs_agf *agf; 510 510 struct xfs_perag *pag; 511 - xfs_agnumber_t agno; 511 + xfs_agnumber_t agno = sc->sm->sm_agno; 512 512 xfs_agblock_t agbno; 513 513 xfs_agblock_t eoag; 514 514 xfs_agblock_t agfl_first; ··· 518 518 int level; 519 519 int error = 0; 520 520 521 - agno = sc->sa.agno = sc->sm->sm_agno; 522 - error = xchk_ag_read_headers(sc, agno, &sc->sa.agi_bp, 523 - &sc->sa.agf_bp, &sc->sa.agfl_bp); 521 + error = xchk_ag_read_headers(sc, agno, &sc->sa); 524 522 if (!xchk_process_error(sc, agno, XFS_AGF_BLOCK(sc->mp), &error)) 525 523 goto out; 526 524 xchk_buffer_recheck(sc, sc->sa.agf_bp); ··· 689 691 { 690 692 struct xchk_agfl_info sai; 691 693 struct xfs_agf *agf; 692 - xfs_agnumber_t agno; 694 + xfs_agnumber_t agno = sc->sm->sm_agno; 693 695 unsigned int agflcount; 694 696 unsigned int i; 695 697 int error; 696 698 697 - agno = sc->sa.agno = sc->sm->sm_agno; 698 - error = xchk_ag_read_headers(sc, agno, &sc->sa.agi_bp, 699 - &sc->sa.agf_bp, &sc->sa.agfl_bp); 699 + error = xchk_ag_read_headers(sc, agno, &sc->sa); 700 700 if (!xchk_process_error(sc, agno, XFS_AGFL_BLOCK(sc->mp), &error)) 701 701 goto out; 702 702 if (!sc->sa.agf_bp) ··· 842 846 struct xfs_mount *mp = sc->mp; 843 847 struct xfs_agi *agi; 844 848 struct xfs_perag *pag; 845 - xfs_agnumber_t agno; 849 + xfs_agnumber_t agno = sc->sm->sm_agno; 846 850 xfs_agblock_t agbno; 847 851 xfs_agblock_t eoag; 848 852 xfs_agino_t agino; ··· 853 857 int level; 854 858 int error = 0; 855 859 856 - agno = sc->sa.agno = sc->sm->sm_agno; 857 - error = xchk_ag_read_headers(sc, agno, &sc->sa.agi_bp, 858 - &sc->sa.agf_bp, &sc->sa.agfl_bp); 860 + error = xchk_ag_read_headers(sc, agno, &sc->sa); 859 861 if (!xchk_process_error(sc, agno, XFS_AGI_BLOCK(sc->mp), &error)) 860 862 goto out; 861 863 xchk_buffer_recheck(sc, sc->sa.agi_bp);
+7 -9
fs/xfs/scrub/common.c
··· 402 402 xchk_ag_read_headers( 403 403 struct xfs_scrub *sc, 404 404 xfs_agnumber_t agno, 405 - struct xfs_buf **agi, 406 - struct xfs_buf **agf, 407 - struct xfs_buf **agfl) 405 + struct xchk_ag *sa) 408 406 { 409 407 struct xfs_mount *mp = sc->mp; 410 408 int error; 411 409 412 - error = xfs_ialloc_read_agi(mp, sc->tp, agno, agi); 410 + sa->agno = agno; 411 + 412 + error = xfs_ialloc_read_agi(mp, sc->tp, agno, &sa->agi_bp); 413 413 if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGI)) 414 414 goto out; 415 415 416 - error = xfs_alloc_read_agf(mp, sc->tp, agno, 0, agf); 416 + error = xfs_alloc_read_agf(mp, sc->tp, agno, 0, &sa->agf_bp); 417 417 if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGF)) 418 418 goto out; 419 419 420 - error = xfs_alloc_read_agfl(mp, sc->tp, agno, agfl); 420 + error = xfs_alloc_read_agfl(mp, sc->tp, agno, &sa->agfl_bp); 421 421 if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGFL)) 422 422 goto out; 423 423 error = 0; ··· 547 547 { 548 548 int error; 549 549 550 - sa->agno = agno; 551 - error = xchk_ag_read_headers(sc, agno, &sa->agi_bp, 552 - &sa->agf_bp, &sa->agfl_bp); 550 + error = xchk_ag_read_headers(sc, agno, sa); 553 551 if (error) 554 552 return error; 555 553
+1 -2
fs/xfs/scrub/common.h
··· 120 120 struct xchk_ag *sa); 121 121 void xchk_perag_get(struct xfs_mount *mp, struct xchk_ag *sa); 122 122 int xchk_ag_read_headers(struct xfs_scrub *sc, xfs_agnumber_t agno, 123 - struct xfs_buf **agi, struct xfs_buf **agf, 124 - struct xfs_buf **agfl); 123 + struct xchk_ag *sa); 125 124 void xchk_ag_btcur_free(struct xchk_ag *sa); 126 125 int xchk_ag_btcur_init(struct xfs_scrub *sc, struct xchk_ag *sa); 127 126 int xchk_count_rmap_ownedby_ag(struct xfs_scrub *sc, struct xfs_btree_cur *cur,