[PATCHSET v6.4 11/12] fstests: reflink on the realtime device

Darrick J. Wong
2025-02-19T00:48:45Z

Hi all,

This patchset enables use of the file data block sharing feature (i.e.
reflink) on the realtime device. It follows the same basic sequence as
the realtime rmap series -- first a few cleanups; then widening of the
API parameters; and introduction of the new btree format and inode fork
format. Next comes enabling CoW and remapping for the rt device; new
scrub, repair, and health reporting code; and at the end we implement
some code to lengthen write requests so that rt extents are always CoWed
fully.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been running on the djcloud for months with no problems. Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=realtime-reflink

xfsprogs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=realtime-reflink

fstests git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=realtime-reflink

xfsdocs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-documentation.git/log/?h=realtime-reflink
---
Commits in this patchset:
* common/populate: create realtime refcount btree
* xfs: create fuzz tests for the realtime refcount btree
* xfs/27[24]: adapt for checking files on the realtime volume
* xfs: race fsstress with realtime refcount btree scrub and repair
* xfs: remove xfs/131 now that we allow reflink on realtime volumes
* generic/331,xfs/240: support files that skip delayed allocation
* common/xfs: fix _xfs_get_file_block_size when rtinherit is set and no rt section
---
common/populate | 26 ++++++++++++++++++---
common/xfs | 15 ++++++++++++
tests/generic/331 | 13 +++++++++-
tests/generic/331.out | 2 +-
tests/xfs/131 | 46 ------------------------------------
tests/xfs/131.out | 5 ----
tests/xfs/1538 | 38 ++++++++++++++++++++++++++++++
tests/xfs/1538.out | 4 +++
tests/xfs/1539 | 38 ++++++++++++++++++++++++++++++
tests/xfs/1539.out | 4 +++
tests/xfs/1540 | 38 ++++++++++++++++++++++++++++++
tests/xfs/1540.out | 4 +++
tests/xfs/1541 | 39 +++++++++++++++++++++++++++++++
tests/xfs/1541.out | 4 +++
tests/xfs/1542 | 38 ++++++++++++++++++++++++++++++
tests/xfs/1542.out | 4 +++
tests/xfs/1543 | 37 +++++++++++++++++++++++++++++
tests/xfs/1543.out | 4 +++
tests/xfs/1544 | 37 +++++++++++++++++++++++++++++
tests/xfs/1544.out | 4 +++
tests/xfs/1545 | 38 ++++++++++++++++++++++++++++++
tests/xfs/1545.out | 4 +++
tests/xfs/1818 | 40 ++++++++++++++++++++++++++++++++
tests/xfs/1818.out | 2 ++
tests/xfs/1819 | 40 ++++++++++++++++++++++++++++++++
tests/xfs/1819.out | 2 ++
tests/xfs/1893 | 2 +-
tests/xfs/240 | 12 ++++++++-
tests/xfs/240.out | 2 +-
tests/xfs/272 | 40 +++++++++++++++++++++-----------
tests/xfs/274 | 62 ++++++++++++++++++++++++++++++++++---------------
31 files changed, 551 insertions(+), 93 deletions(-)
delete mode 100755 tests/xfs/131
delete mode 100644 tests/xfs/131.out
create mode 100755 tests/xfs/1538
create mode 100644 tests/xfs/1538.out
create mode 100755 tests/xfs/1539
create mode 100644 tests/xfs/1539.out
create mode 100755 tests/xfs/1540
create mode 100644 tests/xfs/1540.out
create mode 100755 tests/xfs/1541
create mode 100644 tests/xfs/1541.out
create mode 100755 tests/xfs/1542
create mode 100644 tests/xfs/1542.out
create mode 100755 tests/xfs/1543
create mode 100644 tests/xfs/1543.out
create mode 100755 tests/xfs/1544
create mode 100644 tests/xfs/1544.out
create mode 100755 tests/xfs/1545
create mode 100644 tests/xfs/1545.out
create mode 100755 tests/xfs/1818
create mode 100644 tests/xfs/1818.out
create mode 100755 tests/xfs/1819
create mode 100644 tests/xfs/1819.out