From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Thu, 26 Jun 2014 17:43:30 +0100 Subject: [Cluster-devel] [GFS2 PATCH] GFS2: Allow flocks to use normal glock dq rather than dq_wait In-Reply-To: <865335399.3808314.1403793985389.JavaMail.zimbra@redhat.com> References: <865335399.3808314.1403793985389.JavaMail.zimbra@redhat.com> Message-ID: <1403801010.4794.31.camel@menhir> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 > --- > 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); > } > > /** >