]> git.baikalelectronics.ru Git - kernel.git/commit
rbd: move calls that may sleep out of spin lock range
authorJosh Durgin <josh.durgin@inktank.com>
Tue, 1 Oct 2013 00:09:54 +0000 (17:09 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Wed, 11 Jun 2014 01:09:25 +0000 (18:09 -0700)
commitd92e6b331b46889a93b93789ffc785ff3d7c027c
treeef743e8e3760b1c8f0db3a12f4b97d9102c65d44
parentc430b4d39d3e8810af362bf37c2e0da30d5802c1
rbd: move calls that may sleep out of spin lock range

get_user() and set_disk_ro() may allocate memory, leading to a
potential deadlock if theye are called while a spin lock is held.

Move the acquisition and release of rbd_dev->lock from rbd_ioctl()
into rbd_ioctl_set_ro(), so it can occur between get_user() and
set_disk_ro().

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
drivers/block/rbd.c