mirror of
https://github.com/raspberrypi/linux.git
synced 2026-01-04 18:27:36 +00:00
xfs: move the online repair rmap hooks to the generic group structure
Prepare for the upcoming realtime groups feature by moving the online repair rmap hooks to based to the generic xfs_group structure. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
committed by
Darrick J. Wong
parent
34cf3a6f39
commit
eb4a84a3c2
@@ -835,7 +835,7 @@ xfs_rmap_hook_enable(void)
|
||||
static inline void
|
||||
xfs_rmap_update_hook(
|
||||
struct xfs_trans *tp,
|
||||
struct xfs_perag *pag,
|
||||
struct xfs_group *xg,
|
||||
enum xfs_rmap_intent_type op,
|
||||
xfs_agblock_t startblock,
|
||||
xfs_extlen_t blockcount,
|
||||
@@ -850,27 +850,27 @@ xfs_rmap_update_hook(
|
||||
.oinfo = *oinfo, /* struct copy */
|
||||
};
|
||||
|
||||
if (pag)
|
||||
xfs_hooks_call(&pag->pag_rmap_update_hooks, op, &p);
|
||||
if (xg)
|
||||
xfs_hooks_call(&xg->xg_rmap_update_hooks, op, &p);
|
||||
}
|
||||
}
|
||||
|
||||
/* Call the specified function during a reverse mapping update. */
|
||||
int
|
||||
xfs_rmap_hook_add(
|
||||
struct xfs_perag *pag,
|
||||
struct xfs_group *xg,
|
||||
struct xfs_rmap_hook *hook)
|
||||
{
|
||||
return xfs_hooks_add(&pag->pag_rmap_update_hooks, &hook->rmap_hook);
|
||||
return xfs_hooks_add(&xg->xg_rmap_update_hooks, &hook->rmap_hook);
|
||||
}
|
||||
|
||||
/* Stop calling the specified function during a reverse mapping update. */
|
||||
void
|
||||
xfs_rmap_hook_del(
|
||||
struct xfs_perag *pag,
|
||||
struct xfs_group *xg,
|
||||
struct xfs_rmap_hook *hook)
|
||||
{
|
||||
xfs_hooks_del(&pag->pag_rmap_update_hooks, &hook->rmap_hook);
|
||||
xfs_hooks_del(&xg->xg_rmap_update_hooks, &hook->rmap_hook);
|
||||
}
|
||||
|
||||
/* Configure rmap update hook functions. */
|
||||
@@ -905,7 +905,8 @@ xfs_rmap_free(
|
||||
return 0;
|
||||
|
||||
cur = xfs_rmapbt_init_cursor(mp, tp, agbp, pag);
|
||||
xfs_rmap_update_hook(tp, pag, XFS_RMAP_UNMAP, bno, len, false, oinfo);
|
||||
xfs_rmap_update_hook(tp, pag_group(pag), XFS_RMAP_UNMAP, bno, len,
|
||||
false, oinfo);
|
||||
error = xfs_rmap_unmap(cur, bno, len, false, oinfo);
|
||||
|
||||
xfs_btree_del_cursor(cur, error);
|
||||
@@ -1149,7 +1150,8 @@ xfs_rmap_alloc(
|
||||
return 0;
|
||||
|
||||
cur = xfs_rmapbt_init_cursor(mp, tp, agbp, pag);
|
||||
xfs_rmap_update_hook(tp, pag, XFS_RMAP_MAP, bno, len, false, oinfo);
|
||||
xfs_rmap_update_hook(tp, pag_group(pag), XFS_RMAP_MAP, bno, len, false,
|
||||
oinfo);
|
||||
error = xfs_rmap_map(cur, bno, len, false, oinfo);
|
||||
|
||||
xfs_btree_del_cursor(cur, error);
|
||||
@@ -2620,8 +2622,8 @@ xfs_rmap_finish_one(
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
xfs_rmap_update_hook(tp, ri->ri_pag, ri->ri_type, bno,
|
||||
ri->ri_bmap.br_blockcount, unwritten, &oinfo);
|
||||
xfs_rmap_update_hook(tp, pag_group(ri->ri_pag), ri->ri_type, bno,
|
||||
ri->ri_bmap.br_blockcount, unwritten, &oinfo);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user