diff options
author | Darrick J. Wong <djwong@kernel.org> | 2021-09-01 10:40:20 -0700 |
---|---|---|
committer | Darrick J. Wong <djwong@kernel.org> | 2021-10-22 16:40:34 -0700 |
commit | 2a870807ca4d47b2947403a27857536c7ad44313 (patch) | |
tree | 2a6e486ca09fe808938dc4acd0dc68e000a3e6d4 /fs/xfs/scrub/repair.h | |
parent | 5cb8fc17301ebe3f522ef1d8933eb3a4c8b2a234 (diff) |
xfs: log EFIs for all btree blocks being used to stage a btreerepair-prep-for-bulk-loading_2021-10-22
We need to log EFIs for every extent that we allocate for the purpose of
staging a new btree so that if we fail then the blocks will be freed
during log recovery. Add a function to relog the EFIs, so that repair
can relog them all every time it creates a new btree block, which will
help us to avoid pinning the log tail.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/scrub/repair.h')
-rw-r--r-- | fs/xfs/scrub/repair.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/xfs/scrub/repair.h b/fs/xfs/scrub/repair.h index f44e08d62b61..e897ccc09464 100644 --- a/fs/xfs/scrub/repair.h +++ b/fs/xfs/scrub/repair.h @@ -70,6 +70,8 @@ struct xrep_newbt_resv { /* Link to list of extents that we've reserved. */ struct list_head list; + struct xfs_log_item *efi; + /* FSB of the block we reserved. */ xfs_fsblock_t fsbno; @@ -116,6 +118,7 @@ int xrep_newbt_claim_block(struct xfs_btree_cur *cur, struct xrep_newbt *xnr, union xfs_btree_ptr *ptr); void xrep_bload_estimate_slack(struct xfs_scrub *sc, struct xfs_btree_bload *bload); +int xrep_newbt_relog_efis(struct xrep_newbt *xnr); #else |