From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wendy Cheng Date: Mon, 07 Jan 2008 13:11:20 -0500 Subject: [Cluster-devel] [GFS2] Fix problems relating to execution of files on GFS2 In-Reply-To: <1199726848.22038.88.camel@quoit> References: <1199726848.22038.88.camel@quoit> Message-ID: <47826B48.5070109@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Steven Whitehouse wrote: > --- a/fs/gfs2/ops_inode.c > +++ b/fs/gfs2/ops_inode.c > @@ -113,8 +113,18 @@ static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry, > if (inode && IS_ERR(inode)) > return ERR_PTR(PTR_ERR(inode)); > > - if (inode) > + if (inode) { > + struct gfs2_glock *gl = GFS2_I(inode)->i_gl; > + struct gfs2_holder gh; > + int error; > + error = gfs2_glock_nq_init(gl, LM_ST_SHARED, LM_FLAG_ANY, &gh); > ok, so this shared glock is now added *back*. As I recall, its removal about one year ago had caused great grief in NFS portion of logic - had to do a tedious work to make NFS work due to this change. Now, the logic is reverted - has performance impact been measured (since it is a disk read) ? -- Wendy > + if (error) { > + iput(inode); > + return ERR_PTR(error); > + } > + gfs2_glock_dq_uninit(&gh); > return d_splice_alias(inode, dentry); > + } > d_add(dentry, inode); > > return NULL; > > >