From: Darrick J. Wong Date: Thu, 21 Sep 2017 22:00:08 +0000 (-0500) Subject: xfs_repair: handle missing extent states X-Git-Tag: v4.13.0-rc2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85c9f7f42941926e57e78e977c57589529b954b5;p=thirdparty%2Fxfsprogs-dev.git xfs_repair: handle missing extent states 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 Reviewed-by: Eric Sandeen [sandeen: move XR_E_REFC case above fallthrough to emit both do_warn] Signed-off-by: Eric Sandeen --- diff --git a/repair/dinode.c b/repair/dinode.c index f0053358d..15ba8cc22 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -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"),