aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/gfs2/incore.h1
-rw-r--r--fs/gfs2/recovery.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index e5701c70f6fb..97742a7ea9cc 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -429,6 +429,7 @@ struct gfs2_jdesc {
429#define JDF_RECOVERY 1 429#define JDF_RECOVERY 1
430 unsigned int jd_jid; 430 unsigned int jd_jid;
431 unsigned int jd_blocks; 431 unsigned int jd_blocks;
432 int jd_recover_error;
432}; 433};
433 434
434struct gfs2_statfs_change_host { 435struct gfs2_statfs_change_host {
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c
index 80701d1566a1..963b2d75200c 100644
--- a/fs/gfs2/recovery.c
+++ b/fs/gfs2/recovery.c
@@ -583,6 +583,7 @@ fail_gunlock_j:
583 583
584 fs_info(sdp, "jid=%u: %s\n", jd->jd_jid, (error) ? "Failed" : "Done"); 584 fs_info(sdp, "jid=%u: %s\n", jd->jd_jid, (error) ? "Failed" : "Done");
585fail: 585fail:
586 jd->jd_recover_error = error;
586 gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_GAVEUP); 587 gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_GAVEUP);
587done: 588done:
588 clear_bit(JDF_RECOVERY, &jd->jd_flags); 589 clear_bit(JDF_RECOVERY, &jd->jd_flags);
@@ -611,6 +612,6 @@ int gfs2_recover_journal(struct gfs2_jdesc *jd, bool wait)
611 wait_on_bit(&jd->jd_flags, JDF_RECOVERY, gfs2_recovery_wait, 612 wait_on_bit(&jd->jd_flags, JDF_RECOVERY, gfs2_recovery_wait,
612 TASK_UNINTERRUPTIBLE); 613 TASK_UNINTERRUPTIBLE);
613 614
614 return 0; 615 return wait ? jd->jd_recover_error : 0;
615} 616}
616 617