Hi, Both patches are now in the -nmw tree. Thanks,
Steve. On Thu, 2014-06-26 at 10:46 -0400, Bob Peterson wrote: > Hi, > > This patch allows flock glocks to use a non-blocking dequeue rather > than dq_wait. It also reverts the previous patch I had posted regarding > dq_wait. The reverted patch isn't necessarily a bad idea, but I decided > this might avoid unforeseen side effects, and was therefore safer. > > Regards, > > Bob Peterson > Red Hat File Systems > > Signed-off-by: Bob Peterson <[email protected]> > --- > diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c > index 0740a57..26b3f95 100644 > --- a/fs/gfs2/file.c > +++ b/fs/gfs2/file.c > @@ -991,7 +991,7 @@ static int do_flock(struct file *file, int cmd, struct > file_lock *fl) > goto out; > flock_lock_file_wait(file, > &(struct file_lock){.fl_type = F_UNLCK}); > - gfs2_glock_dq_wait(fl_gh); > + gfs2_glock_dq(fl_gh); > gfs2_holder_reinit(state, flags, fl_gh); > } else { > error = gfs2_glock_get(GFS2_SB(&ip->i_inode), ip->i_no_addr, > diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c > index b703dcc..ee4e04f 100644 > --- a/fs/gfs2/glock.c > +++ b/fs/gfs2/glock.c > @@ -1128,9 +1128,7 @@ void gfs2_glock_dq_wait(struct gfs2_holder *gh) > struct gfs2_glock *gl = gh->gh_gl; > gfs2_glock_dq(gh); > might_sleep(); > - if (!find_first_holder(gl)) > - wait_on_bit(&gl->gl_flags, GLF_DEMOTE, gfs2_glock_demote_wait, > - TASK_UNINTERRUPTIBLE); > + wait_on_bit(&gl->gl_flags, GLF_DEMOTE, gfs2_glock_demote_wait, > TASK_UNINTERRUPTIBLE); > } > > /** >
