1 // SPDX-License-Identifier: GPL-2.0-or-later 1 2 /* 3 * Copyright (C) 2022-2023 Oracle. All Rights 4 * Author: Darrick J. Wong <djwong@kernel.org> 5 */ 6 #ifndef __XFS_SCRUB_NEWBT_H__ 7 #define __XFS_SCRUB_NEWBT_H__ 8 9 struct xfs_alloc_arg; 10 11 struct xrep_newbt_resv { 12 /* Link to list of extents that we've 13 struct list_head list; 14 15 struct xfs_perag *pag; 16 17 /* Auto-freeing this reservation if we 18 struct xfs_alloc_autoreap autoreap; 19 20 /* AG block of the extent we reserved. 21 xfs_agblock_t agbno; 22 23 /* Length of the reservation. */ 24 xfs_extlen_t len; 25 26 /* How much of this reservation has be 27 xfs_extlen_t used; 28 }; 29 30 struct xrep_newbt { 31 struct xfs_scrub *sc; 32 33 /* Custom allocation function, or NULL 34 int (*alloc_vexten 35 36 37 38 /* List of extents that we've reserved 39 struct list_head resv_list; 40 41 /* Fake root for new btree. */ 42 union { 43 struct xbtree_afakeroot afake; 44 struct xbtree_ifakeroot ifake; 45 }; 46 47 /* rmap owner of these blocks */ 48 struct xfs_owner_info oinfo; 49 50 /* btree geometry for the bulk loader 51 struct xfs_btree_bload bload; 52 53 /* Allocation hint */ 54 xfs_fsblock_t alloc_hint; 55 56 /* per-ag reservation type */ 57 enum xfs_ag_resv_type resv; 58 }; 59 60 void xrep_newbt_init_bare(struct xrep_newbt *x 61 void xrep_newbt_init_ag(struct xrep_newbt *xnr 62 const struct xfs_owner_info *o 63 enum xfs_ag_resv_type resv); 64 int xrep_newbt_init_inode(struct xrep_newbt *x 65 int whichfork, const struct xf 66 int xrep_newbt_alloc_blocks(struct xrep_newbt 67 int xrep_newbt_add_extent(struct xrep_newbt *x 68 xfs_agblock_t agbno, xfs_extle 69 void xrep_newbt_cancel(struct xrep_newbt *xnr) 70 int xrep_newbt_commit(struct xrep_newbt *xnr); 71 int xrep_newbt_claim_block(struct xfs_btree_cu 72 union xfs_btree_ptr *ptr); 73 unsigned int xrep_newbt_unused_blocks(struct x 74 75 #endif /* __XFS_SCRUB_NEWBT_H__ */ 76
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.