On 9/30/20 11:01 AM, Darrick J. Wong wrote: > 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> Ok, we already reject any other incompatibilities elsewehre, for any user of the libxfs_mount callchain, so this is consistent. Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > v2: move code to rtmount_init where it belongs > --- > libxfs/init.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/libxfs/init.c b/libxfs/init.c > index cb8967bc77d4..330c645190d9 100644 > --- a/libxfs/init.c > +++ b/libxfs/init.c > @@ -428,6 +428,21 @@ rtmount_init( > sbp = &mp->m_sb; > if (sbp->sb_rblocks == 0) > return 0; > + > + if (xfs_sb_version_hasreflink(sbp)) { > + fprintf(stderr, > + _("%s: Reflink not compatible with realtime device. Please try a newer xfsprogs.\n"), > + progname); > + return -1; > + } > + > + if (xfs_sb_version_hasrmapbt(sbp)) { > + fprintf(stderr, > + _("%s: Reverse mapping btree not compatible with realtime device. Please try a newer xfsprogs.\n"), > + progname); > + return -1; > + } > + > if (mp->m_rtdev_targp->dev == 0 && !(flags & LIBXFS_MOUNT_DEBUGGER)) { > fprintf(stderr, _("%s: filesystem has a realtime subvolume\n"), > progname); >