]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: add a UserPerm to MetaRequest
authorGreg Farnum <gfarnum@redhat.com>
Wed, 3 Aug 2016 07:35:57 +0000 (00:35 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Wed, 21 Sep 2016 23:33:54 +0000 (16:33 -0700)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/client/Client.cc
src/client/MetaRequest.h

index 5f8659008742f617f45d6c984b0639b6eed7a8ca..7b0c3d8e80b0e94e918cc0f97c7ae0c2a070b1f5 100644 (file)
@@ -1626,8 +1626,7 @@ int Client::make_request(MetaRequest *request,
   if (oldest_tid == 0 && request->get_op() != CEPH_MDS_OP_SETFILELOCK)
     oldest_tid = tid;
 
-  request->set_caller_uid(perms.uid());
-  request->set_caller_gid(perms.gid());
+  request->set_caller_perms(perms);
 
   if (cct->_conf->client_inject_fixed_oldest_tid) {
     ldout(cct, 20) << __func__ << " injecting fixed oldest_client_tid(1)" << dendl;
index 8e13ad5f1e9ac9b8158cc832b8d050b552ce1dcf..01c25319d780a97405842b745367ff78153f64b7 100644 (file)
@@ -69,6 +69,7 @@ public:
   list<Cond*> waitfor_safe;
 
   InodeRef target;
+  UserPerm perms;
 
   explicit MetaRequest(int op) :
     _dentry(NULL), _old_dentry(NULL), abort_rc(0),
@@ -169,10 +170,13 @@ public:
   void set_filepath(const filepath& fp) { path = fp; }
   void set_filepath2(const filepath& fp) { path2 = fp; }
   void set_string2(const char *s) { path2.set_path(s, 0); }
-  void set_caller_uid(unsigned u) { head.caller_uid = u; }
-  void set_caller_gid(unsigned g) { head.caller_gid = g; }
-  uid_t get_uid() { return head.caller_uid; }
-  uid_t get_gid() { return head.caller_gid; }
+  void set_caller_perms(const UserPerm& _perms) {
+    perms = _perms;
+    head.caller_uid = perms.uid();
+    head.caller_gid = perms.gid();
+  }
+  uid_t get_uid() { return perms.uid(); }
+  uid_t get_gid() { return perms.gid(); }
   void set_data(const bufferlist &d) { data = d; }
   void set_dentry_wanted() {
     head.flags = head.flags | CEPH_MDS_FLAG_WANT_DENTRY;