ceph: handle cap import atomically
authorYan, Zheng <zheng.z.yan@intel.com>
Fri, 18 Apr 2014 05:20:27 +0000 (13:20 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Fri, 6 Jun 2014 01:29:53 +0000 (09:29 +0800)
commit2cd698be9a3d3a0f8f3c66814eac34144c31954c
treee5e3bd01ef76b0345742b12887a637ad821598e7
parentd9df2783507943316b305e177e5b1c157200c76f
ceph: handle cap import atomically

cap import messages are processed by both handle_cap_import() and
handle_cap_grant(). These two functions are not executed in the same
atomic context, so they can races with cap release.

The fix is make handle_cap_import() not release the i_ceph_lock when
it returns. Let handle_cap_grant() release the lock after it finishes
its job.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
fs/ceph/caps.c