]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
add check_access in _do_cap_update
authorJashan Kamboj <jashank42@gmail.com>
Mon, 3 Aug 2015 19:11:15 +0000 (00:41 +0530)
committerSage Weil <sage@redhat.com>
Thu, 1 Oct 2015 13:39:34 +0000 (09:39 -0400)
Signed-off-by: Jashan Kamboj <jashank42@gmail.com>
src/mds/Locker.cc

index fb548a56e6d633b0f54c6e965108d13efb84968a..6ca67d3e22db6eb919cab3c035129814e2e24028 100644 (file)
@@ -3131,6 +3131,12 @@ bool Locker::_do_cap_update(CInode *in, Capability *cap,
   if (!dirty && !change_max)
     return false;
 
+  Session *session = static_cast<Session *>(m->get_connection()->get_priv());
+  if (!session->check_access(in, MAY_WRITE, 0, 0, 0, 0)) {
+    dout(10) << "check_access failed, dropping cap update on " << *in << dendl;
+    return false;
+  }
+  session->put();
 
   // do the update.
   EUpdate *le = new EUpdate(mds->mdlog, "cap update");