[RFC 00/15] xfsprogs: support the reflink btree
Darrick J. Wong
darrick.wong at oracle.com
Mon Jun 29 22:25:38 CDT 2015
Hi all,
This is a RFC-quality pass at xfsprogs support for the reflink btree.
As discussed in the kernel-side patches, reflink enables XFS to map
multiple logical blocks to the same physical block. There is a single
[block, refcount] btree to track the reference counts of extents of
physical blocks. The xfs_db and xfs_metadump tools have been extended
to deal with the reflink btree; xfs_repair now records all reverse
mapping data for the purpose of checking and rebuilding the reflink
btree (and some day will do likewise for the rmap btree).
The patch set is based on the current (3.2.3+) for-next branch plus
Dave's rmap RFC patches for rmap (i.e. the rmap-btree branch). The
first patch wires up xfs_io to talk to the "XFS" reflink ioctls, which
are of course the same ioctls that BTRFS uses. These commands will be
used by the xfstests I've written to test reflink/CoW support. There
are a couple of patches to fix up xfs_db's check functionality well
enough to support blocktrash-type fuzzing. After that comes the
libxfs port of the kernel rlbt declarations and modifications to the
individual programs to support reflink.
I've not had time to get reflink and rmap to work together; don't
enable rmap and reflink at the same time!
This is an extraordinary way to eat your data. Enjoy!
Comments and questions are, as always, welcome.
--D
More information about the xfs
mailing list