[Cluster-devel] [GFS2][PATCH] - Allow journal recovery on read-only mount

Steven Whitehouse <[email protected]>
Newsgroups com.redhat.cluster-devel
Message-ID <[email protected]>
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;
> > 		}
> >  
> >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.