gfs2: fail mount if journal recovery fails
If the first mounter fails to recover one of the journals
during mount, the mount should fail. Signed-off-by: David Teigland <teigland@redhat.com> --- fs/gfs2/incore.h | 1 + fs/gfs2/recovery.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h index 59114c5..ad2d05e 100644 --- a/fs/gfs2/incore.h +++ b/fs/gfs2/incore.h @@ -434,6 +434,7 @@ struct gfs2_jdesc { #define JDF_RECOVERY 1 unsigned int jd_jid; unsigned int jd_blocks; + int jd_recover_error; }; struct gfs2_statfs_change_host { diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c index 80701d1..963b2d7 100644 --- a/fs/gfs2/recovery.c +++ b/fs/gfs2/recovery.c @@ -583,6 +583,7 @@ fail_gunlock_j: fs_info(sdp, "jid=%u: %s ", jd->jd_jid, (error) ? "Failed" : "Done"); fail: + jd->jd_recover_error = error; gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_GAVEUP); done: clear_bit(JDF_RECOVERY, &jd->jd_flags); @@ -611,6 +612,6 @@ int gfs2_recover_journal(struct gfs2_jdesc *jd, bool wait) wait_on_bit(&jd->jd_flags, JDF_RECOVERY, gfs2_recovery_wait, TASK_UNINTERRUPTIBLE); - return 0; + return wait ? jd->jd_recover_error : 0; } -- 1.7.6 |
gfs2: fail mount if journal recovery fails
Hi,
Both patches look good and I've pushed them to the -fixes tree for now, Steve. On Mon, 2012-01-09 at 15:29 -0500, David Teigland wrote: > If the first mounter fails to recover one of the journals > during mount, the mount should fail. > > Signed-off-by: David Teigland <teigland@redhat.com> > --- > fs/gfs2/incore.h | 1 + > fs/gfs2/recovery.c | 3 ++- > 2 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h > index 59114c5..ad2d05e 100644 > --- a/fs/gfs2/incore.h > +++ b/fs/gfs2/incore.h > @@ -434,6 +434,7 @@ struct gfs2_jdesc { > #define JDF_RECOVERY 1 > unsigned int jd_jid; > unsigned int jd_blocks; > + int jd_recover_error; > }; > > struct gfs2_statfs_change_host { > diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c > index 80701d1..963b2d7 100644 > --- a/fs/gfs2/recovery.c > +++ b/fs/gfs2/recovery.c > @@ -583,6 +583,7 @@ fail_gunlock_j: > > fs_info(sdp, "jid=%u: %s ", jd->jd_jid, (error) ? "Failed" : "Done"); > fail: > + jd->jd_recover_error = error; > gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_GAVEUP); > done: > clear_bit(JDF_RECOVERY, &jd->jd_flags); > @@ -611,6 +612,6 @@ int gfs2_recover_journal(struct gfs2_jdesc *jd, bool wait) > wait_on_bit(&jd->jd_flags, JDF_RECOVERY, gfs2_recovery_wait, > TASK_UNINTERRUPTIBLE); > > - return 0; > + return wait ? jd->jd_recover_error : 0; > } > |
| All times are GMT. The time now is 08:49 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.