GFS2: aggressively issue revokes in gfs2_log_flush
authorBenjamin Marzinski <bmarzins@redhat.com>
Fri, 14 Jun 2013 16:38:29 +0000 (11:38 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 19 Jun 2013 08:41:59 +0000 (09:41 +0100)
commit5d054964f57ade1adb310313c3cfb8e93e804e8f
treec04a28ef48bc298d5aaffda4e0cf2cda10eba43e
parent512cbf02fde42b747c5752f135afd3f3f6d598e2
GFS2: aggressively issue revokes in gfs2_log_flush

This patch looks at all the outstanding blocks in all the transactions
on the log, and moves the completed ones to the ail2 list.  Then it
issues revokes for these blocks.  This will hopefully speed things up
in situations where there is a lot of contention for glocks, especially
if they are acquired serially.

revoke_lo_before_commit will issue at most one log block's full of these
preemptive revokes. The amount of reserved log space that
gfs2_log_reserve() ignores has been incremented to allow for this extra
block.

This patch also consolidates the common revoke instructions into one
function, gfs2_add_revoke().

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/glops.c
fs/gfs2/log.c
fs/gfs2/log.h
fs/gfs2/lops.c
fs/gfs2/meta_io.c
fs/gfs2/trans.c