]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: switch _open() implementation to UserPerm
authorGreg Farnum <gfarnum@redhat.com>
Fri, 29 Jul 2016 22:44:09 +0000 (15:44 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Wed, 21 Sep 2016 23:33:49 +0000 (16:33 -0700)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/client/Client.cc
src/client/Client.h

index c8528542dc74ee48b2c673b1b64834575a35bf09..1c6598bfa6a82a498d25f7059f04ce88efaab12a 100644 (file)
@@ -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?
index 75d2333aa510f64dc2aa80c43982ea14b2e9dfb1..0fbfa867ab09cd021a6f1b94ae7aea01742d6e01 100644 (file)
@@ -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,