commit | 77f33c03739697d01c2e730e4c2610424059ceaf | [log] [tgz] |
---|---|---|
author | Josh Durgin <josh.durgin@inktank.com> | Mon Sep 30 17:09:54 2013 -0700 |
committer | Josh Durgin <josh.durgin@inktank.com> | Tue Jun 10 18:09:25 2014 -0700 |
tree | ef743e8e3760b1c8f0db3a12f4b97d9102c65d44 | |
parent | 131fd9f6fc89ad2cc993f80664d18ca49d6f8483 [diff] |
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>