struct xfs_dinode *dip;
dip = iocur_top->data;
- return dip->di_format == XFS_DINODE_FMT_RMAP;
+ return dip->di_format == XFS_DINODE_FMT_RMAP ||
+ dip->di_format == XFS_DINODE_FMT_REFCOUNT;
}
static int
char *prefix;
struct xfs_dinode *dip;
struct xfs_rtrmap_root *rtrmap;
+ struct xfs_rtrefcount_root *rtrefc;
int level;
int numrecs;
int ret;
level = be16_to_cpu(rtrmap->bb_level);
numrecs = be16_to_cpu(rtrmap->bb_numrecs);
break;
+ case XFS_DINODE_FMT_REFCOUNT:
+ prefix = "u3.rtrefcbt";
+ rtrefc = (struct xfs_rtrefcount_root *)XFS_DFORK_DPTR(dip);
+ level = be16_to_cpu(rtrefc->bb_level);
+ numrecs = be16_to_cpu(rtrefc->bb_numrecs);
+ break;
default:
dbprintf("Unknown metadata inode type %u\n", dip->di_format);
return 0;
case TYP_BMAPBTA:
case TYP_BMAPBTD:
case TYP_RTRMAPBT:
+ case TYP_RTREFCBT:
return dump_btree_long(iflag);
case TYP_INODE:
if (is_btree_inode())
.maxlevels = libxfs_rtrmapbt_maxlevels_ondisk,
.maxrecs = libxfs_rtrmapbt_maxrecs,
},
+ {
+ .tag = "rtrefcountbt",
+ .maxlevels = libxfs_rtrefcountbt_maxlevels_ondisk,
+ .maxrecs = libxfs_rtrefcountbt_maxrecs,
+ },
};
static void
#define xfs_rtgroup_put libxfs_rtgroup_put
#define xfs_rtrefcountbt_droot_maxrecs libxfs_rtrefcountbt_droot_maxrecs
+#define xfs_rtrefcountbt_maxlevels_ondisk libxfs_rtrefcountbt_maxlevels_ondisk
#define xfs_rtrefcountbt_maxrecs libxfs_rtrefcountbt_maxrecs
#define xfs_rtrmapbt_calc_reserves libxfs_rtrmapbt_calc_reserves