linux/fs/xfs/linux-2.6
Dave Chinner 3f16b98507 xfs: introduce new locks for the log grant ticket wait queues
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@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2010-12-21 12:29:01 +11:00
..
kmem.c
kmem.h
mrlock.h
time.h
xfs_acl.c
xfs_aops.c xfs: simplify xfs_map_at_offset 2010-12-16 16:06:07 -06:00
xfs_aops.h xfs: kill xfs_iomap 2010-12-16 16:05:51 -06:00
xfs_buf.c xfs: add a lru to the XFS buffer cache 2010-12-02 16:30:55 +11:00
xfs_buf.h xfs: connect up buffer reclaim priority hooks 2010-12-02 16:31:13 +11:00
xfs_export.c xfs: fix exporting with left over 64-bit inodes 2010-12-16 16:04:55 -06:00
xfs_export.h
xfs_file.c
xfs_fs_subr.c
xfs_globals.c
xfs_ioctl32.c
xfs_ioctl32.h
xfs_ioctl.c xfs: xfs_ioctl: fix information leak to userland 2010-11-10 12:00:47 -06:00
xfs_ioctl.h
xfs_iops.c xfs: use hlist_add_fake 2010-11-10 12:00:48 -06:00
xfs_iops.h
xfs_linux.h xfs: use wait queues directly for the log wait queues 2010-12-21 12:09:01 +11:00
xfs_quotaops.c
xfs_stats.c
xfs_stats.h
xfs_super.c xfs: reduce the number of AIL push wakeups 2010-12-17 20:08:04 +11:00
xfs_super.h
xfs_sync.c xfs: convert pag_ici_lock to a spin lock 2010-12-16 17:08:41 +11:00
xfs_sync.h
xfs_sysctl.c
xfs_sysctl.h
xfs_trace.c
xfs_trace.h xfs: introduce new locks for the log grant ticket wait queues 2010-12-21 12:29:01 +11:00
xfs_vnode.h
xfs_xattr.c