[Cluster-devel] [GFS2] Fix problems relating to execution of files on GFS2

Steven Whitehouse swhiteho at redhat.com
Tue Jan 8 08:40:56 UTC 2008


Hi,

On Mon, 2008-01-07 at 13:11 -0500, Wendy Cheng wrote:
> 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

Well yes and no. Its not in the same place as before, its only in the
VFS lookup code and not in the GFS2 internal lookup code, and I really
didn't want to have to add it back here if it could at all be avoided,
but since there is no dcache revalidate in the initial lookup case it
seems we have no choice now :(

Some tests with postmark show no measurable difference in performance so
far, so maybe its not so bad. We still need to get to the point where we
can use lookup intents and solve the problem properly,

Steve.





More information about the Cluster-devel mailing list