]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_repair: allow realtime files to have the reflink flag set
authorDarrick J. Wong <djwong@kernel.org>
Fri, 15 Jul 2022 21:34:50 +0000 (14:34 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 22 Nov 2023 23:03:42 +0000 (15:03 -0800)
Now that we allow reflink on the realtime volume, allow that combination
of inode flags if the feature's enabled.  Note that we now allow inodes
to have rtinherit even if there's no realtime volume, since the kernel
has never restricted that.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
repair/dinode.c

index f0c0ba4da4e743ab813bd5f815b1e777aaabc96f..2b254b29c4a211ced1f8d9763493a8786a3ff035 100644 (file)
@@ -3199,7 +3199,8 @@ _("bad (negative) size %" PRId64 " on inode %" PRIu64 "\n"),
                }
 
                if ((flags2 & XFS_DIFLAG2_REFLINK) &&
-                   (flags & (XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT))) {
+                   !xfs_has_rtreflink(mp) &&
+                   (flags & XFS_DIFLAG_REALTIME)) {
                        if (!uncertain) {
                                do_warn(
        _("Cannot have a reflinked realtime inode %" PRIu64 "\n"),
@@ -3231,7 +3232,8 @@ _("bad (negative) size %" PRId64 " on inode %" PRIu64 "\n"),
                }
 
                if ((flags2 & XFS_DIFLAG2_COWEXTSIZE) &&
-                   (flags & (XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT))) {
+                   !xfs_has_rtreflink(mp) &&
+                   (flags & XFS_DIFLAG_REALTIME)) {
                        if (!uncertain) {
                                do_warn(
        _("Cannot have CoW extent size hint on a realtime inode %" PRIu64 "\n"),