]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: better checking of v5 attributes
authorEric Sandeen <sandeen@sandeen.net>
Tue, 13 Oct 2015 23:31:48 +0000 (10:31 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 13 Oct 2015 23:31:48 +0000 (10:31 +1100)
The commit:

0519f66 xfs_repair: better checking of v5 metadata fields

added new corruption checks to dir2.c but missed the similar
code in attr_repair.c; add that here.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
repair/attr_repair.c

index 2aafdf65b8304e0e3da7ed6e38f07232b0007dbc..c8ba484135df0eba3007881c40f00060458d31ca 100644 (file)
@@ -201,6 +201,15 @@ traverse_int_dablock(xfs_mount_t   *mp,
                        goto error_out;
                }
 
+               /* corrupt node; rebuild the dir. */
+               if (bp->b_error == -EFSBADCRC || bp->b_error == -EFSCORRUPTED) {
+                       libxfs_putbuf(bp);
+                       do_warn(
+_("corrupt tree block %u for directory inode %" PRIu64 "\n"),
+                               bno, da_cursor->ino);
+                       goto error_out;
+               }
+
                if (nodehdr.count > geo->node_ents)  {
                        do_warn(_("bad record count in inode %" PRIu64 ", "
                                  "count = %d, max = %d\n"),