xfs: allow assigning the tail lsn with the AIL lock held
authorChristoph Hellwig <hch@infradead.org>
Mon, 23 Apr 2012 05:58:33 +0000 (15:58 +1000)
committerBen Myers <bpm@sgi.com>
Mon, 14 May 2012 21:20:26 +0000 (16:20 -0500)
commit1c30462542bac8abffb4823638b6b1659c1cfcf5
treeb86f1fc14eb0f41e224833128ecc81163227d044
parent32ce90a4b79155a155de2b284d8b69023e5e8fea
xfs: allow assigning the tail lsn with the AIL lock held

Provide a variant of xlog_assign_tail_lsn that has the AIL lock already
held.  By doing so we do an additional atomic_read + atomic_set under
the lock, which comes down to two instructions.

Switch xfs_trans_ail_update_bulk and xfs_trans_ail_delete_bulk to the
new version to reduce the number of lock roundtrips, and prepare for
a new addition that would require a third lock roundtrip in
xfs_trans_ail_delete_bulk.  This addition is also the reason for
slightly rearranging the conditionals and relying on xfs_log_space_wake
for checking that the filesystem has been shut down internally.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_log.c
fs/xfs/xfs_log.h
fs/xfs/xfs_trans_ail.c
fs/xfs/xfs_trans_priv.h