From a1995df5e1ba9ec583f795995cb92afee9a89c22 Mon Sep 17 00:00:00 2001 From: Abhijith Das Date: Fri, 18 Jan 2008 14:06:37 -0600 Subject: [PATCH] --- yaml --- r: 76067 b: refs/heads/master c: 7bc5c414fe6627ec518c82d154c796f0981f5b02 h: refs/heads/master i: 76065: 426c657d0338327141d4eb8a9dd5d40274bdd959 76063: cc6e7266be82a644ce67b98fb09f0ffb0d8e5e1e v: v3 --- [refs] | 2 +- trunk/fs/gfs2/recovery.c | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index a833dfe1fa42..e7f166c33489 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1b8177ec1e779bcc3ed89419ff7c80dbc3dcc489 +refs/heads/master: 7bc5c414fe6627ec518c82d154c796f0981f5b02 diff --git a/trunk/fs/gfs2/recovery.c b/trunk/fs/gfs2/recovery.c index 27c994f2d1f0..b249e294a95b 100644 --- a/trunk/fs/gfs2/recovery.c +++ b/trunk/fs/gfs2/recovery.c @@ -504,13 +504,21 @@ int gfs2_recover_journal(struct gfs2_jdesc *jd) if (!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) ro = 1; } else { - if (sdp->sd_vfs->s_flags & MS_RDONLY) - ro = 1; + if (sdp->sd_vfs->s_flags & MS_RDONLY) { + /* check if device itself is read-only */ + ro = bdev_read_only(sdp->sd_vfs->s_bdev); + if (!ro) { + fs_info(sdp, "recovery required on " + "read-only filesystem.\n"); + fs_info(sdp, "write access will be " + "enabled during recovery.\n"); + } + } } if (ro) { - fs_warn(sdp, "jid=%u: Can't replay: read-only FS\n", - jd->jd_jid); + fs_warn(sdp, "jid=%u: Can't replay: read-only block " + "device\n", jd->jd_jid); error = -EROFS; goto fail_gunlock_tr; }