diff options
| author | Darrick J. Wong <djwong@kernel.org> | 2024-11-20 16:20:15 -0800 |
|---|---|---|
| committer | Darrick J. Wong <djwong@kernel.org> | 2024-12-23 13:06:02 -0800 |
| commit | eb9bff22311ca47ef4848bbdcf24dae06ae3f243 (patch) | |
| tree | d6ddb95c39f9a8f60d09633b0c5d1135bf94097e /fs/xfs/libxfs/xfs_btree.h | |
| parent | 6a92924275ecdd768c8105f8975b971300c5ba7d (diff) | |
xfs: make xfs_iroot_realloc a bmap btree function
Move the inode fork btree root reallocation function part of the btree
ops because it's now mostly bmbt-specific code.
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/xfs/libxfs/xfs_btree.h')
| -rw-r--r-- | fs/xfs/libxfs/xfs_btree.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/xfs/libxfs/xfs_btree.h b/fs/xfs/libxfs/xfs_btree.h index c5bff273cae2..8380ae0a64dd 100644 --- a/fs/xfs/libxfs/xfs_btree.h +++ b/fs/xfs/libxfs/xfs_btree.h @@ -213,6 +213,22 @@ struct xfs_btree_ops { const union xfs_btree_key *key1, const union xfs_btree_key *key2, const union xfs_btree_key *mask); + + /* + * Reallocate the space for if_broot to fit the number of records. + * Move the records and pointers in if_broot to fit the new size. When + * shrinking this will eliminate holes between the records and pointers + * created by the caller. When growing this will create holes to be + * filled in by the caller. + * + * The caller must not request to add more records than would fit in + * the on-disk inode root. If the if_broot is currently NULL, then if + * we are adding records, one will be allocated. The caller must also + * not request that the number of records go below zero, although it + * can go to zero. + */ + struct xfs_btree_block *(*broot_realloc)(struct xfs_btree_cur *cur, + unsigned int new_numrecs); }; /* btree geometry flags */ |