]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: handle missing extent states
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 21 Sep 2017 22:00:08 +0000 (17:00 -0500)
committerEric Sandeen <sandeen@redhat.com>
Thu, 21 Sep 2017 22:00:08 +0000 (17:00 -0500)
Missed a couple of the new extent states in the bmbt processing, so add
them to avoid aborting xfs_repair.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
[sandeen: move XR_E_REFC case above fallthrough to emit both do_warn]
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
repair/dinode.c

index f0053358dac2aac4159cd6d0848a410eabb32b50..15ba8cc22b3907360f2f9ffdf357c5fbaeef5b2e 100644 (file)
@@ -764,6 +764,7 @@ _("%s fork in ino %" PRIu64 " claims free block %" PRIu64 "\n"),
                        case XR_E_FS_MAP:
                        case XR_E_INO:
                        case XR_E_INUSE_FS:
+                       case XR_E_REFC:
                                do_warn(
 _("%s fork in inode %" PRIu64 " claims metadata block %" PRIu64 "\n"),
                                        forkname, ino, b);
@@ -780,6 +781,12 @@ _("%s fork in %s inode %" PRIu64 " claims used block %" PRIu64 "\n"),
                                        forkname, ftype, ino, b);
                                goto done;
 
+                       case XR_E_COW:
+                               do_warn(
+_("%s fork in %s inode %" PRIu64 " claims CoW block %" PRIu64 "\n"),
+                                       forkname, ftype, ino, b);
+                               goto done;
+
                        default:
                                do_error(
 _("illegal state %d in block map %" PRIu64 "\n"),