From: Greg Farnum Date: Fri, 29 Jul 2016 22:44:09 +0000 (-0700) Subject: client: switch _open() implementation to UserPerm X-Git-Tag: v11.0.1~36^2~62 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=78e20286897ba79cc429d77932e0b027e79b3160;p=ceph.git client: switch _open() implementation to UserPerm Signed-off-by: Greg Farnum --- diff --git a/src/client/Client.cc b/src/client/Client.cc index c8528542dc74..1c6598bfa6a8 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -7769,7 +7769,8 @@ void Client::_put_fh(Fh *f) delete f; } -int Client::_open(Inode *in, int flags, mode_t mode, Fh **fhp, int uid, int gid) +int Client::_open(Inode *in, int flags, mode_t mode, Fh **fhp, + const UserPerm& perms) { int cmode = ceph_flags_to_mode(flags); if (cmode < 0) @@ -7802,7 +7803,7 @@ int Client::_open(Inode *in, int flags, mode_t mode, Fh **fhp, int uid, int gid) req->head.args.open.mask = 0; req->head.args.open.old_size = in->size; // for O_TRUNC req->set_inode(in); - result = make_request(req, uid, gid); + result = make_request(req, perms); } // success? diff --git a/src/client/Client.h b/src/client/Client.h index 75d2333aa510..0fbfa867ab09 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -830,10 +830,11 @@ private: int flags, const UserPerm& perms); int _removexattr(Inode *in, const char *nm, const UserPerm& perms); int _removexattr(InodeRef &in, const char *nm, const UserPerm& perms); - int _open(Inode *in, int flags, mode_t mode, Fh **fhp, int uid, int gid); int _open(Inode *in, int flags, mode_t mode, Fh **fhp, - const UserPerm& perms) { - return _open(in, flags, mode, fhp, perms.uid(), perms.gid()); + const UserPerm& perms); + int _open(Inode *in, int flags, mode_t mode, Fh **fhp, int uid, int gid) { + UserPerm perms(uid, gid); + return _open(in, flags, mode, fhp, perms); } int _renew_caps(Inode *in); int _create(Inode *in, const char *name, int flags, mode_t mode, InodeRef *inp, Fh **fhp,