diff mbox series

common/repair: filter unknown block state properly

Message ID 20201027042652.840821-1-zlang@redhat.com (mailing list archive)
State New, archived
Headers show
Series common/repair: filter unknown block state properly | expand

Commit Message

Zorro Lang Oct. 27, 2020, 4:26 a.m. UTC
xfsprogs 32e11be9 ("xfs_repair: complain about extents in unknown
state") changed the xfs_repair output format as below:

  - _("unknown block state, ag %d, block %d\n"),
  -         i, j);
  + _("unknown block state, ag %d, blocks %u-%u\n"),
  +         i, j, j + blen - 1);

It replaces "block" with "blocks". That cause xfs/030 fails. So use
proper regex to filter the 'old' and 'new' output format both.

Signed-off-by: Zorro Lang <zlang@redhat.com>
---
 common/repair | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Darrick J. Wong Oct. 27, 2020, 4:34 p.m. UTC | #1
On Tue, Oct 27, 2020 at 12:26:52PM +0800, Zorro Lang wrote:
> xfsprogs 32e11be9 ("xfs_repair: complain about extents in unknown
> state") changed the xfs_repair output format as below:
> 
>   - _("unknown block state, ag %d, block %d\n"),
>   -         i, j);
>   + _("unknown block state, ag %d, blocks %u-%u\n"),
>   +         i, j, j + blen - 1);
> 
> It replaces "block" with "blocks". That cause xfs/030 fails. So use
> proper regex to filter the 'old' and 'new' output format both.
> 
> Signed-off-by: Zorro Lang <zlang@redhat.com>

Aha, I had a patch to do exactly this sitting in my xfstests tree that I
never sent out.

Egad, I haven't sent much of anything since 5.6.  I better get on that.

In the meantime,

Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>

--D

> ---
>  common/repair | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/common/repair b/common/repair
> index 6668dd51..c8d16314 100644
> --- a/common/repair
> +++ b/common/repair
> @@ -88,7 +88,7 @@ s/(stripe unit) \(.*\) (and width) \(.*\)/\1 (SU) \2 (SW)/;
>  s/(superblock) (\d+)/\1 AGNO/;
>  s/(AG \#)(\d+)/\1AGNO/;
>  s/(reset bad sb for ag) (\d+)/\1 AGNO/;
> -s/(unknown block state, ag )(\d+)(, block )(\d+)/\1AGNO\3AGBNO/;
> +s/(unknown block state, ag )(\d+)(, blocks? )(\d+)/\1AGNO\3AGBNO/;
>  /^Note - quota info will be regenerated on next quota mount.$/ && next;
>  	print;'
>  }
> @@ -98,7 +98,7 @@ s/(unknown block state, ag )(\d+)(, block )(\d+)/\1AGNO\3AGBNO/;
>  # tree and fails to reconcile the metadata reverse mappings against the
>  # metadata).
>  _filter_repair_lostblocks() {
> -	_filter_repair | sed -e '/unknown block state, ag AGNO, block AGBNO/d'
> +	_filter_repair | sed -e '/unknown block state, ag AGNO, blocks* AGBNO/d'
>  }
>  
>  _filter_dd()
> -- 
> 2.25.4
>
diff mbox series

Patch

diff --git a/common/repair b/common/repair
index 6668dd51..c8d16314 100644
--- a/common/repair
+++ b/common/repair
@@ -88,7 +88,7 @@  s/(stripe unit) \(.*\) (and width) \(.*\)/\1 (SU) \2 (SW)/;
 s/(superblock) (\d+)/\1 AGNO/;
 s/(AG \#)(\d+)/\1AGNO/;
 s/(reset bad sb for ag) (\d+)/\1 AGNO/;
-s/(unknown block state, ag )(\d+)(, block )(\d+)/\1AGNO\3AGBNO/;
+s/(unknown block state, ag )(\d+)(, blocks? )(\d+)/\1AGNO\3AGBNO/;
 /^Note - quota info will be regenerated on next quota mount.$/ && next;
 	print;'
 }
@@ -98,7 +98,7 @@  s/(unknown block state, ag )(\d+)(, block )(\d+)/\1AGNO\3AGBNO/;
 # tree and fails to reconcile the metadata reverse mappings against the
 # metadata).
 _filter_repair_lostblocks() {
-	_filter_repair | sed -e '/unknown block state, ag AGNO, block AGBNO/d'
+	_filter_repair | sed -e '/unknown block state, ag AGNO, blocks* AGBNO/d'
 }
 
 _filter_dd()