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
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 <adas@redhat.com>
>
>
>
>------------------------------------------------------------------------
>
>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.
");
>+ fs_info(sdp, "write access will be "
>+ "enabled during recovery.
");
>+ }
>+ }
> }
>
> if (ro) {
>- fs_warn(sdp, "jid=%u: Can't replay: read-only FS
",
>- jd->jd_jid);
>+ fs_warn(sdp, "jid=%u: Can't replay: read-only block "
>+ "device
", jd->jd_jid);
> error = -EROFS;
> goto fail_gunlock_tr;
> }
>
>
01-19-2008, 04:50 PM
Steven Whitehouse
- Allow journal recovery on read-only mount
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 <adas@redhat.com>
> >
> >
> >
> >------------------------------------------------------------------------
> >
> >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.
");
> >+ fs_info(sdp, "write access will be "
> >+ "enabled during recovery.
");
> >+ }
> >+ }
> > }
> >
> > if (ro) {
> >- fs_warn(sdp, "jid=%u: Can't replay: read-only FS
",
> >- jd->jd_jid);
> >+ fs_warn(sdp, "jid=%u: Can't replay: read-only block "
> >+ "device
", jd->jd_jid);
> > error = -EROFS;
> > goto fail_gunlock_tr;
> > }
> >
> >
>
01-21-2008, 08:14 AM
Steven Whitehouse
- Allow journal recovery on read-only mount
Hi,
On Fri, 2008-01-18 at 14:06 -0600, 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 <adas@redhat.com>
>
I've applied this one since I want to get all the patches ready for
posting prior to the forthcoming merge window. If we need to alter it,
then we can do that later,