mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-24 05:01:03 +02:00
xfs: kill xfs_alloc_pagf_init()
Trivial wrapper around xfs_alloc_read_agf(), can be easily replaced by passing a NULL agfbp to xfs_alloc_read_agf(). Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
committed by
Dave Chinner
parent
99b13c7f0b
commit
76b47e528e
@@ -124,7 +124,7 @@ xfs_initialize_perag_data(
|
|||||||
* all the information we need and populates the
|
* all the information we need and populates the
|
||||||
* per-ag structures for us.
|
* per-ag structures for us.
|
||||||
*/
|
*/
|
||||||
error = xfs_alloc_pagf_init(mp, NULL, index, 0);
|
error = xfs_alloc_read_agf(mp, NULL, index, 0, NULL);
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
|
@@ -322,7 +322,7 @@ out:
|
|||||||
* address.
|
* address.
|
||||||
*/
|
*/
|
||||||
if (has_resv) {
|
if (has_resv) {
|
||||||
error2 = xfs_alloc_pagf_init(mp, tp, pag->pag_agno, 0);
|
error2 = xfs_alloc_read_agf(mp, tp, pag->pag_agno, 0, NULL);
|
||||||
if (error2)
|
if (error2)
|
||||||
return error2;
|
return error2;
|
||||||
|
|
||||||
|
@@ -2867,25 +2867,6 @@ xfs_alloc_log_agf(
|
|||||||
xfs_trans_log_buf(tp, bp, (uint)first, (uint)last);
|
xfs_trans_log_buf(tp, bp, (uint)first, (uint)last);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Interface for inode allocation to force the pag data to be initialized.
|
|
||||||
*/
|
|
||||||
int /* error */
|
|
||||||
xfs_alloc_pagf_init(
|
|
||||||
xfs_mount_t *mp, /* file system mount structure */
|
|
||||||
xfs_trans_t *tp, /* transaction pointer */
|
|
||||||
xfs_agnumber_t agno, /* allocation group number */
|
|
||||||
int flags) /* XFS_ALLOC_FLAGS_... */
|
|
||||||
{
|
|
||||||
struct xfs_buf *bp;
|
|
||||||
int error;
|
|
||||||
|
|
||||||
error = xfs_alloc_read_agf(mp, tp, agno, flags, &bp);
|
|
||||||
if (!error)
|
|
||||||
xfs_trans_brelse(tp, bp);
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Put the block on the freelist for the allocation group.
|
* Put the block on the freelist for the allocation group.
|
||||||
*/
|
*/
|
||||||
@@ -3095,7 +3076,9 @@ xfs_read_agf(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read in the allocation group header (free/alloc section).
|
* Read in the allocation group header (free/alloc section) and initialise the
|
||||||
|
* perag structure if necessary. If the caller provides @agfbpp, then return the
|
||||||
|
* locked buffer to the caller, otherwise free it.
|
||||||
*/
|
*/
|
||||||
int /* error */
|
int /* error */
|
||||||
xfs_alloc_read_agf(
|
xfs_alloc_read_agf(
|
||||||
@@ -3103,8 +3086,9 @@ xfs_alloc_read_agf(
|
|||||||
struct xfs_trans *tp, /* transaction pointer */
|
struct xfs_trans *tp, /* transaction pointer */
|
||||||
xfs_agnumber_t agno, /* allocation group number */
|
xfs_agnumber_t agno, /* allocation group number */
|
||||||
int flags, /* XFS_ALLOC_FLAG_... */
|
int flags, /* XFS_ALLOC_FLAG_... */
|
||||||
struct xfs_buf **bpp) /* buffer for the ag freelist header */
|
struct xfs_buf **agfbpp)
|
||||||
{
|
{
|
||||||
|
struct xfs_buf *agfbp;
|
||||||
struct xfs_agf *agf; /* ag freelist header */
|
struct xfs_agf *agf; /* ag freelist header */
|
||||||
struct xfs_perag *pag; /* per allocation group data */
|
struct xfs_perag *pag; /* per allocation group data */
|
||||||
int error;
|
int error;
|
||||||
@@ -3118,13 +3102,12 @@ xfs_alloc_read_agf(
|
|||||||
ASSERT(agno != NULLAGNUMBER);
|
ASSERT(agno != NULLAGNUMBER);
|
||||||
error = xfs_read_agf(mp, tp, agno,
|
error = xfs_read_agf(mp, tp, agno,
|
||||||
(flags & XFS_ALLOC_FLAG_TRYLOCK) ? XBF_TRYLOCK : 0,
|
(flags & XFS_ALLOC_FLAG_TRYLOCK) ? XBF_TRYLOCK : 0,
|
||||||
bpp);
|
&agfbp);
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
ASSERT(!(*bpp)->b_error);
|
|
||||||
|
|
||||||
agf = (*bpp)->b_addr;
|
agf = agfbp->b_addr;
|
||||||
pag = (*bpp)->b_pag;
|
pag = agfbp->b_pag;
|
||||||
if (!pag->pagf_init) {
|
if (!pag->pagf_init) {
|
||||||
pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks);
|
pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks);
|
||||||
pag->pagf_btreeblks = be32_to_cpu(agf->agf_btreeblks);
|
pag->pagf_btreeblks = be32_to_cpu(agf->agf_btreeblks);
|
||||||
@@ -3165,6 +3148,10 @@ xfs_alloc_read_agf(
|
|||||||
be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNTi]));
|
be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNTi]));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (agfbpp)
|
||||||
|
*agfbpp = agfbp;
|
||||||
|
else
|
||||||
|
xfs_trans_brelse(tp, agfbp);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -123,16 +123,6 @@ xfs_alloc_log_agf(
|
|||||||
struct xfs_buf *bp, /* buffer for a.g. freelist header */
|
struct xfs_buf *bp, /* buffer for a.g. freelist header */
|
||||||
uint32_t fields);/* mask of fields to be logged (XFS_AGF_...) */
|
uint32_t fields);/* mask of fields to be logged (XFS_AGF_...) */
|
||||||
|
|
||||||
/*
|
|
||||||
* Interface for inode allocation to force the pag data to be initialized.
|
|
||||||
*/
|
|
||||||
int /* error */
|
|
||||||
xfs_alloc_pagf_init(
|
|
||||||
struct xfs_mount *mp, /* file system mount structure */
|
|
||||||
struct xfs_trans *tp, /* transaction pointer */
|
|
||||||
xfs_agnumber_t agno, /* allocation group number */
|
|
||||||
int flags); /* XFS_ALLOC_FLAGS_... */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Put the block on the freelist for the allocation group.
|
* Put the block on the freelist for the allocation group.
|
||||||
*/
|
*/
|
||||||
|
@@ -3185,7 +3185,8 @@ xfs_bmap_longest_free_extent(
|
|||||||
|
|
||||||
pag = xfs_perag_get(mp, ag);
|
pag = xfs_perag_get(mp, ag);
|
||||||
if (!pag->pagf_init) {
|
if (!pag->pagf_init) {
|
||||||
error = xfs_alloc_pagf_init(mp, tp, ag, XFS_ALLOC_FLAG_TRYLOCK);
|
error = xfs_alloc_read_agf(mp, tp, ag, XFS_ALLOC_FLAG_TRYLOCK,
|
||||||
|
NULL);
|
||||||
if (error) {
|
if (error) {
|
||||||
/* Couldn't lock the AGF, so skip this AG. */
|
/* Couldn't lock the AGF, so skip this AG. */
|
||||||
if (error == -EAGAIN) {
|
if (error == -EAGAIN) {
|
||||||
|
@@ -1621,7 +1621,7 @@ xfs_dialloc_good_ag(
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!pag->pagf_init) {
|
if (!pag->pagf_init) {
|
||||||
error = xfs_alloc_pagf_init(mp, tp, pag->pag_agno, flags);
|
error = xfs_alloc_read_agf(mp, tp, pag->pag_agno, flags, NULL);
|
||||||
if (error)
|
if (error)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -126,7 +126,7 @@ xfs_filestream_pick_ag(
|
|||||||
pag = xfs_perag_get(mp, ag);
|
pag = xfs_perag_get(mp, ag);
|
||||||
|
|
||||||
if (!pag->pagf_init) {
|
if (!pag->pagf_init) {
|
||||||
err = xfs_alloc_pagf_init(mp, NULL, ag, trylock);
|
err = xfs_alloc_read_agf(mp, NULL, ag, trylock, NULL);
|
||||||
if (err) {
|
if (err) {
|
||||||
if (err != -EAGAIN) {
|
if (err != -EAGAIN) {
|
||||||
xfs_perag_put(pag);
|
xfs_perag_put(pag);
|
||||||
@@ -181,7 +181,7 @@ next_ag:
|
|||||||
if (ag != startag)
|
if (ag != startag)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Allow sleeping in xfs_alloc_pagf_init() on the 2nd pass. */
|
/* Allow sleeping in xfs_alloc_read_agf() on the 2nd pass. */
|
||||||
if (trylock != 0) {
|
if (trylock != 0) {
|
||||||
trylock = 0;
|
trylock = 0;
|
||||||
continue;
|
continue;
|
||||||
|
Reference in New Issue
Block a user