xfs: split the CIL lock
authorDave Chinner <dchinner@redhat.com>
Mon, 12 Aug 2013 10:50:08 +0000 (20:50 +1000)
committerBen Myers <bpm@sgi.com>
Tue, 13 Aug 2013 21:21:21 +0000 (16:21 -0500)
commit4bb928cdb900d0614f4766d5f1ca5bc3844f7656
tree9bbc2d358dc02c3ff2d9a39cf91c9b485cba288d
parent991aaf65ff0addc2692cfa8dc1ff082dcf69d26f
xfs: split the CIL lock

The xc_cil_lock is used for two purposes - to protect the CIL
itself, and to protect the push/commit state and lists. These are
two logically separate structures and operations, so can have their
own locks. This means that pushing on the CIL and the commit wait
ordering won't contend for a lock with other transactions that are
completing concurrently. As the CIL insertion is the hottest path
throught eh CIL, this is a big win.

Signed-off-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_cil.c
fs/xfs/xfs_log_priv.h