]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/Locker: fix null deref on cap import 1496/head
authorSage Weil <sage@inktank.com>
Tue, 18 Mar 2014 21:54:26 +0000 (14:54 -0700)
committerSage Weil <sage@inktank.com>
Tue, 18 Mar 2014 21:54:26 +0000 (14:54 -0700)
The session Connection* may be NULL.

Fixes: #7708
Signed-off-by: Sage Weil <sage@inktank.com>
src/mds/Locker.cc

index 1906c49bc4c1338124a3ab32b9dd86daf8f0f8dc..e69e985accbca8e3d37c0d0ba6680057665239ca 100644 (file)
@@ -1799,8 +1799,10 @@ bool Locker::issue_caps(CInode *in, Capability *only_cap)
     // add in any xlocker-only caps (for locks this client is the xlocker for)
     allowed |= xlocker_allowed & in->get_xlocker_mask(it->first);
 
+    Session *session = mds->get_session(it->first);
     if (in->inode.inline_version != CEPH_INLINE_NONE &&
-        !mds->get_session(it->first)->connection->has_feature(CEPH_FEATURE_MDS_INLINE_DATA))
+       !(session && session->connection &&
+         session->connection->has_feature(CEPH_FEATURE_MDS_INLINE_DATA)))
       allowed &= ~(CEPH_CAP_FILE_RD | CEPH_CAP_FILE_WR);
 
     int pending = cap->pending();