From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Neither the kernel nor the code in xfsprogs support filesystems that have (either reverse mapping btrees or reflink) enabled and a realtime volume configured. The kernel rejects such combinations and mkfs refuses to format such a config, but xfsprogs doesn't check and can do Bad Things, so port those checks before someone shreds their filesystem. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- libxfs/init.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libxfs/init.c b/libxfs/init.c index cb8967bc77d4..1a966084ffea 100644 --- a/libxfs/init.c +++ b/libxfs/init.c @@ -724,6 +724,20 @@ libxfs_mount( exit(1); } + if (xfs_sb_version_hasreflink(sbp) && sbp->sb_rblocks) { + fprintf(stderr, + _("%s: Reflink not compatible with realtime device. Please try a newer xfsprogs.\n"), + progname); + exit(1); + } + + if (xfs_sb_version_hasrmapbt(sbp) && sbp->sb_rblocks) { + fprintf(stderr, + _("%s: Reverse mapping btree not compatible with realtime device. Please try a newer xfsprogs.\n"), + progname); + exit(1); + } + xfs_da_mount(mp); if (xfs_sb_version_hasattr2(&mp->m_sb))