From: Greg Farnum Date: Wed, 3 Aug 2016 07:35:57 +0000 (-0700) Subject: client: add a UserPerm to MetaRequest X-Git-Tag: v11.0.1~36^2~31 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a1d52fadbb6c70caa6ff0187486b4de2a3af8d55;p=ceph.git client: add a UserPerm to MetaRequest Signed-off-by: Greg Farnum --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 5f8659008742..7b0c3d8e80b0 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -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; diff --git a/src/client/MetaRequest.h b/src/client/MetaRequest.h index 8e13ad5f1e9a..01c25319d780 100644 --- a/src/client/MetaRequest.h +++ b/src/client/MetaRequest.h @@ -69,6 +69,7 @@ public: list 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;