From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Mon, 15 Sep 2008 17:01:49 +0100 Subject: [Cluster-devel] [GFS2] bz231369 - GFS2 will panic if you misspell any mount options In-Reply-To: <48CE6AB3.8030302@redhat.com> References: <1219311246.3486.4.camel@localhost.localdomain> <48C94D5F.8080601@redhat.com> <48CE6AB3.8030302@redhat.com> Message-ID: <1221494509.3555.15.camel@quoit> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, Applied to the -nmw tree. Thanks, Steve. On Mon, 2008-09-15 at 09:01 -0500, Abhijith Das wrote: > Abhijith Das wrote: > > This is the upstream patch. RHEL5 patch posted to rhkernel-list. > > The gfs2 superblock pointer is NULL after a failed mount. When control > > eventually goes to gfs2_kill_sb, we dereference this NULL pointer. This > > patch ensures that the gfs2 superblock pointer is not NULL before being > > dereferenced in gfs2_kill_sb. > > > > Signed-off-by: Abhijith Das > > > Corrected upstream patch. > > Signed-off-by: Abhijith Das > > plain text document attachment (bz231369-git.patch) > diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c > index a6225cc..ae35f09 100644 > --- a/fs/gfs2/ops_fstype.c > +++ b/fs/gfs2/ops_fstype.c > @@ -1237,14 +1237,17 @@ static int gfs2_get_sb_meta(struct file_system_type *fs_type, int flags, > static void gfs2_kill_sb(struct super_block *sb) > { > struct gfs2_sbd *sdp = sb->s_fs_info; > - gfs2_meta_syncfs(sdp); > - dput(sdp->sd_root_dir); > - dput(sdp->sd_master_dir); > - sdp->sd_root_dir = NULL; > - sdp->sd_master_dir = NULL; > + if (sdp) { > + gfs2_meta_syncfs(sdp); > + dput(sdp->sd_root_dir); > + dput(sdp->sd_master_dir); > + sdp->sd_root_dir = NULL; > + sdp->sd_master_dir = NULL; > + } > shrink_dcache_sb(sb); > kill_block_super(sb); > - gfs2_delete_debugfs_file(sdp); > + if (sdp) > + gfs2_delete_debugfs_file(sdp); > } > > struct file_system_type gfs2_fs_type = {