From: Darrick J. Wong <djwong@xxxxxxxxxx> Create a new in-memory btree type so that we can store refcount bag info in a much more memory-efficient format. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- libxfs/xfs_btree.c | 3 +++ libxfs/xfs_btree.h | 1 + libxfs/xfs_shared.h | 1 + libxfs/xfs_types.h | 6 ++++-- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libxfs/xfs_btree.c b/libxfs/xfs_btree.c index 8c7f51f4195..b89e8ce7797 100644 --- a/libxfs/xfs_btree.c +++ b/libxfs/xfs_btree.c @@ -1370,6 +1370,9 @@ xfs_btree_set_refs( case XFS_BTNUM_REFC: xfs_buf_set_ref(bp, XFS_REFC_BTREE_REF); break; + case XFS_BTNUM_RCBAG: + xfs_buf_set_ref(bp, XFS_RCBAG_BTREE_REF); + break; default: ASSERT(0); } diff --git a/libxfs/xfs_btree.h b/libxfs/xfs_btree.h index 7c2ff1a02dd..c795dd8ee84 100644 --- a/libxfs/xfs_btree.h +++ b/libxfs/xfs_btree.h @@ -62,6 +62,7 @@ union xfs_btree_rec { #define XFS_BTNUM_FINO ((xfs_btnum_t)XFS_BTNUM_FINOi) #define XFS_BTNUM_RMAP ((xfs_btnum_t)XFS_BTNUM_RMAPi) #define XFS_BTNUM_REFC ((xfs_btnum_t)XFS_BTNUM_REFCi) +#define XFS_BTNUM_RCBAG ((xfs_btnum_t)XFS_BTNUM_RCBAGi) struct xfs_btree_ops; uint32_t xfs_btree_magic(struct xfs_mount *mp, const struct xfs_btree_ops *ops); diff --git a/libxfs/xfs_shared.h b/libxfs/xfs_shared.h index d1b3f210326..eaabfa52eda 100644 --- a/libxfs/xfs_shared.h +++ b/libxfs/xfs_shared.h @@ -128,6 +128,7 @@ void xfs_log_get_max_trans_res(struct xfs_mount *mp, #define XFS_ATTR_BTREE_REF 1 #define XFS_DQUOT_REF 1 #define XFS_REFC_BTREE_REF 1 +#define XFS_RCBAG_BTREE_REF 1 #define XFS_SSB_REF 0 /* diff --git a/libxfs/xfs_types.h b/libxfs/xfs_types.h index c2868e8b6a1..9a4019f23dd 100644 --- a/libxfs/xfs_types.h +++ b/libxfs/xfs_types.h @@ -116,7 +116,8 @@ typedef enum { */ typedef enum { XFS_BTNUM_BNOi, XFS_BTNUM_CNTi, XFS_BTNUM_RMAPi, XFS_BTNUM_BMAPi, - XFS_BTNUM_INOi, XFS_BTNUM_FINOi, XFS_BTNUM_REFCi, XFS_BTNUM_MAX + XFS_BTNUM_INOi, XFS_BTNUM_FINOi, XFS_BTNUM_REFCi, XFS_BTNUM_RCBAGi, + XFS_BTNUM_MAX } xfs_btnum_t; #define XFS_BTNUM_STRINGS \ @@ -126,7 +127,8 @@ typedef enum { { XFS_BTNUM_BMAPi, "bmbt" }, \ { XFS_BTNUM_INOi, "inobt" }, \ { XFS_BTNUM_FINOi, "finobt" }, \ - { XFS_BTNUM_REFCi, "refcbt" } + { XFS_BTNUM_REFCi, "refcbt" }, \ + { XFS_BTNUM_RCBAGi, "rcbagbt" } struct xfs_name { const unsigned char *name;