]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_repair: check that metadata updates have been committed
authorDarrick J. Wong <darrick.wong@oracle.com>
Sun, 1 Mar 2020 17:33:38 +0000 (12:33 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Sun, 1 Mar 2020 17:33:38 +0000 (12:33 -0500)
Make sure that any metadata that we repaired or regenerated has been
written to disk.  If that fails, exit with 1 to signal that there are
still errors in the filesystem.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
repair/xfs_repair.c

index 2c15125f682064549559be30ccbc42f8c2fb8b28..6b4635349a370b8b94a1a4517ebbadfe7395bb33 100644 (file)
@@ -703,6 +703,7 @@ main(int argc, char **argv)
        struct xfs_sb   psb;
        int             rval;
        struct xfs_ino_geometry *igeo;
+       int             error;
 
        progname = basename(argv[0]);
        setlocale(LC_ALL, "");
@@ -1104,7 +1105,13 @@ _("Note - stripe unit (%d) and width (%d) were copied from a backup superblock.\
         */
        libxfs_bcache_flush();
        format_log_max_lsn(mp);
-       libxfs_umount(mp);
+
+       /* Report failure if anything failed to get written to our fs. */
+       error = -libxfs_umount(mp);
+       if (error)
+               do_error(
+       _("File system metadata writeout failed, err=%d.  Re-run xfs_repair."),
+                               error);
 
        libxfs_destroy(&x);