libceph: avoid dropping con mutex before fault
authorSage Weil <sage@inktank.com>
Tue, 31 Jul 2012 01:17:13 +0000 (18:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 Nov 2012 19:38:42 +0000 (11:38 -0800)
commit328677c24bbae17f3f91ffce3b2351a27933741c
tree1260cfe3b6af6134d91a342c419206fb9cff3249
parent900fbd910f53a417a6b0859bd2cde7ae48ac4bb2
libceph: avoid dropping con mutex before fault

(cherry picked from commit 8636ea672f0c5ab7478c42c5b6705ebd1db7eb6a)

The ceph_fault() function takes the con mutex, so we should avoid
dropping it before calling it.  This fixes a potential race with
another thread calling ceph_con_close(), or _open(), or similar (we
don't reverify con->state after retaking the lock).

Add annotation so that lockdep realizes we will drop the mutex before
returning.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Alex Elder <elder@inktank.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ceph/messenger.c