]> 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>
Fri, 16 Aug 2024 21:57:44 +0000 (14:57 -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 c23abb8a5e4cf3bf759104e318a2157be5ac6bbc..47296d2f033cf1f4d9e0091702660ecc79fa1831 100644 (file)
@@ -3305,7 +3305,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"),
@@ -3337,7 +3338,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"),