On Mon, Dec 13, 2010 at 03:44:41PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> The log grant ticket wait queues are currently protected by the log
> grant lock. However, the queues are functionally independent from
> each other, and operations on them only require serialisation
> against other queue operations now that all of the other log
> variables they use are atomic values.
> Hence, we can make them independent of the grant lock by introducing
> new locks just to protect the lists operations. because the lists
> are independent, we can use a lock per list and ensure that reserve
> and write head queuing do not contend.
> To ensure forced shutdowns work correctly in conjunction with the
> new fast paths, ensure that we check whether the log has been shut
> down in the grant functions once we hold the relevant spin locks but
> before we go to sleep. This is needed to co-ordinate correctly with
> the wakeups that are issued on the ticket queues so we don't leave
> any processes sleeping on the queues during a shutdown.
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>