aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-03-16 13:39:28 -0700
committerSage Weil <sage@newdream.net>2010-03-23 07:46:53 -0700
commitcdc2ce056a3620139056b60ad7f6d355ad13f445 (patch)
tree1aed7f66612d13beeeec6e2c191f19eff44d1054 /lib
parent4ea0043a29c82ca52ca54728d837314563bec574 (diff)
downloadkernel_samsung_crespo-cdc2ce056a3620139056b60ad7f6d355ad13f445.zip
kernel_samsung_crespo-cdc2ce056a3620139056b60ad7f6d355ad13f445.tar.gz
kernel_samsung_crespo-cdc2ce056a3620139056b60ad7f6d355ad13f445.tar.bz2
ceph: fix session locking in handle_caps, ceph_check_caps
Passing a session pointer to ceph_check_caps() used to mean it would leave the session mutex locked. That wasn't always possible if it wasn't passed CHECK_CAPS_AUTHONLY. If could unlock the passed session and lock a differet session mutex, which was clearly wrong, and also emitted a warning when it a racing CPU retook it and we did an unlock from the wrong context. This was only a problem when there was more than one MDS. First, make ceph_check_caps unconditionally drop the session mutex, so that it is free to lock other sessions as needed. Then adjust the one caller that passes in a session (handle_cap_grant) accordingly. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions