From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Fri, 08 Dec 2006 14:31:53 +0000 Subject: [Cluster-devel] Re: [PATCH] gfs2: don't try to lockfs after shutdown In-Reply-To: <20061206174633.GA25322@redhat.com> References: <20061206174633.GA25322@redhat.com> Message-ID: <1165588313.3752.968.camel@quoit.chygwyn.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, This has the honour of being the first patch in the new -nmw tree, Steve. On Wed, 2006-12-06 at 11:46 -0600, David Teigland wrote: > If an fs has already been shut down, a lockfs callback should do nothing. > An fs that's been shut down can't acquire locks or do anything with > respect to the cluster. > > Also, remove FIXME comment in withdraw function. The missing bits of the > withdraw procedure are now all done by user space. > > Signed-off-by: David Teigland > > Index: linux-2.6.19-quilt/fs/gfs2/lm.c > =================================================================== > --- linux-2.6.19-quilt.orig/fs/gfs2/lm.c 2006-11-29 15:57:37.000000000 -0600 > +++ linux-2.6.19-quilt/fs/gfs2/lm.c 2006-12-06 11:39:17.375799158 -0600 > @@ -104,15 +104,9 @@ > vprintk(fmt, args); > va_end(args); > > - fs_err(sdp, "about to withdraw from the cluster\n"); > + fs_err(sdp, "about to withdraw this file system\n"); > BUG_ON(sdp->sd_args.ar_debug); > > - > - fs_err(sdp, "waiting for outstanding I/O\n"); > - > - /* FIXME: suspend dm device so oustanding bio's complete > - and all further io requests fail */ > - > fs_err(sdp, "telling LM to withdraw\n"); > gfs2_withdraw_lockproto(&sdp->sd_lockstruct); > fs_err(sdp, "withdrawn\n"); > Index: linux-2.6.19-quilt/fs/gfs2/ops_super.c > =================================================================== > --- linux-2.6.19-quilt.orig/fs/gfs2/ops_super.c 2006-11-29 15:57:37.000000000 -0600 > +++ linux-2.6.19-quilt/fs/gfs2/ops_super.c 2006-12-06 11:38:12.855658211 -0600 > @@ -172,6 +172,9 @@ > struct gfs2_sbd *sdp = sb->s_fs_info; > int error; > > + if (test_bit(SDF_SHUTDOWN, &sdp->sd_flags)) > + return; > + > for (;;) { > error = gfs2_freeze_fs(sdp); > if (!error)