md: use separate bio pool for each md device.
authorNeilBrown <neilb@suse.de>
Tue, 26 Oct 2010 07:31:13 +0000 (18:31 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 28 Oct 2010 06:36:15 +0000 (17:36 +1100)
commita167f663243662aa9153c01086580a11cde9ffdc
tree886e64787421bbf17a1eab7853d67258b598f050
parent2b193363ef68667ad717a6723165e0dccf99470f
md: use separate bio pool for each md device.

bio_clone and bio_alloc allocate from a common bio pool.
If an md device is stacked with other devices that use this pool, or under
something like swap which uses the pool, then the multiple calls on
the pool can cause deadlocks.

So allocate a local bio pool for each md array and use that rather
than the common pool.

This pool is used both for regular IO and metadata updates.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/faulty.c
drivers/md/md.c
drivers/md/md.h
drivers/md/raid1.c
drivers/md/raid10.c
drivers/md/raid5.c