]> 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>
Thu, 15 Aug 2024 18:58:31 +0000 (11:58 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 9 Oct 2024 23:29:21 +0000 (16:29 -0700)
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 9156874efc3708d1830dcad1846edeb305a50e83..8f665ece649a7f725b2526744f1ad8ff7c35113a 100644 (file)
@@ -3324,7 +3324,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"),
@@ -3356,7 +3357,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"),