Hi, On Fri, 2008-01-18 at 14:35 -0600, Abhijith Das wrote: > I'm NACKing this on Dave's suggestion that we restrict this behavior to > standalone gfs2 filesystems (lock_nolock). I'm working on a patch for > that and will post it soon. > > --Abhi > Why? I don't see the need for such a restriction. The original patch looks ok to me,
Steve. > Abhijith Das wrote: > > >This patch allows gfs2 to perform journal recovery even if it is mounted > >read-only. Strictly speaking, a read-only mount should not be writing to > >the filesystem, but we do this only to perform journal recovery. A > >read-only mount will fail if we don't recover the dirty journal. Also, > >when gfs2 is used as a root filesystem, it will be mounted read-only > >before being mounted read-write during the boot sequence. A failed > >read-only mount will panic the machine during bootup. > > > >Signed-off-by: Abhijith Das <[EMAIL PROTECTED]> > > > > > > > >------------------------------------------------------------------------ > > > >diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c > >index 27c994f..b249e29 100644 > >--- a/fs/gfs2/recovery.c > >+++ b/fs/gfs2/recovery.c > >@@ -504,13 +504,21 @@ int gfs2_recover_journal(struct gfs2_jde > > 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; > > } > > > > >