]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - drivers/block/rbd.c
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)
commit77f33c03739697d01c2e730e4c2610424059ceaf
treeef743e8e3760b1c8f0db3a12f4b97d9102c65d44
parent131fd9f6fc89ad2cc993f80664d18ca49d6f8483
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