md: avoid spinlock problem in blk_throtl_exit
authorNeilBrown <neilb@suse.de>
Mon, 21 Feb 2011 07:25:57 +0000 (18:25 +1100)
committerNeilBrown <neilb@suse.de>
Mon, 21 Feb 2011 07:25:57 +0000 (18:25 +1100)
commitda9cf5050a2e3dbc3cf26a8d908482eb4485ed49
treed5e7ea4ef419d07d294e88b47a4aaf2676a605eb
parent8f5f02c460b7ca74ce55ce126ce0c1e58a3f923d
md: avoid spinlock problem in blk_throtl_exit

blk_throtl_exit assumes that ->queue_lock still exists,
so make sure that it does.
To do this, we stop redirecting ->queue_lock to conf->device_lock
and leave it pointing where it is initialised - __queue_lock.

As the blk_plug functions check the ->queue_lock is held, we now
take that spin_lock explicitly around the plug functions.  We don't
need the locking, just the warning removal.

This is needed for any kernel with the blk_throtl code, which is
which is 2.6.37 and later.

Cc: stable@kernel.org
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/linear.c
drivers/md/multipath.c
drivers/md/raid0.c
drivers/md/raid1.c
drivers/md/raid10.c
drivers/md/raid5.c