xfs: use per-filesystem I/O completion workqueues
authorChristoph Hellwig <hch@infradead.org>
Wed, 29 Feb 2012 09:53:48 +0000 (09:53 +0000)
committerBen Myers <bpm@sgi.com>
Mon, 5 Mar 2012 17:07:42 +0000 (11:07 -0600)
commitaa6bf01d391935a8929333bc2e243084ea0c58db
tree686c204328f00ae91466267a9f1e85c3c8d767cb
parent4b217ed9e30f94b6e8e5e262020ef0ceab6113af
xfs: use per-filesystem I/O completion workqueues

The new concurrency managed workqueues are cheap enough that we can create
per-filesystem instead of global workqueues.  This allows us to remove the
trylock or defer scheme on the ilock, which is not helpful once we have
outstanding log reservations until finishing a size update.

Also allow the default concurrency on this workqueues so that I/O completions
blocking on the ilock for one inode do not block process for another inode.

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