From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> 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@xxxxxxxxxx> --- repair/xfs_repair.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c index eb1ce546..ccb13f4a 100644 --- a/repair/xfs_repair.c +++ b/repair/xfs_repair.c @@ -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,11 @@ _("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) + exit(1); if (x.rtdev) libxfs_device_close(x.rtdev);