]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: switch _posix_acl_create() to UserPerm
authorGreg Farnum <gfarnum@redhat.com>
Wed, 3 Aug 2016 06:29:47 +0000 (23:29 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Wed, 21 Sep 2016 23:33:53 +0000 (16:33 -0700)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/client/Client.cc
src/client/Client.h

index a4ee8164b624aab4221358a6573b9c2d150e61c0..345b6f9c352b2c68e80eb4ae826a7142a976f5c3 100644 (file)
@@ -10506,7 +10506,7 @@ int Client::_mknod(Inode *dir, const char *name, mode_t mode, dev_t rdev,
   req->dentry_unless = CEPH_CAP_FILE_EXCL;
 
   bufferlist xattrs_bl;
-  int res = _posix_acl_create(dir, &mode, xattrs_bl, perms.uid(), perms.gid());
+  int res = _posix_acl_create(dir, &mode, xattrs_bl, perms);
   if (res < 0)
     goto fail;
   req->head.args.mknod.mode = mode;
@@ -10618,7 +10618,7 @@ int Client::_create(Inode *dir, const char *name, int flags, mode_t mode,
 
   mode |= S_IFREG;
   bufferlist xattrs_bl;
-  int res = _posix_acl_create(dir, &mode, xattrs_bl, perms.uid(), perms.gid());
+  int res = _posix_acl_create(dir, &mode, xattrs_bl, perms);
   if (res < 0)
     goto fail;
   req->head.args.open.mode = mode;
@@ -10687,7 +10687,7 @@ int Client::_mkdir(Inode *dir, const char *name, mode_t mode, const UserPerm& pe
 
   mode |= S_IFDIR;
   bufferlist xattrs_bl;
-  int res = _posix_acl_create(dir, &mode, xattrs_bl, perm.uid(), perm.gid());
+  int res = _posix_acl_create(dir, &mode, xattrs_bl, perm);
   if (res < 0)
     goto fail;
   req->head.args.mkdir.mode = mode;
@@ -12404,7 +12404,7 @@ out:
 }
 
 int Client::_posix_acl_create(Inode *dir, mode_t *mode, bufferlist& xattrs_bl,
-                             int uid, int gid)
+                             const UserPerm& perms)
 {
   if (acl_type == NO_ACL)
     return 0;
@@ -12412,7 +12412,7 @@ int Client::_posix_acl_create(Inode *dir, mode_t *mode, bufferlist& xattrs_bl,
   if (S_ISLNK(*mode))
     return 0;
 
-  int r = _getattr(dir, CEPH_STAT_CAP_XATTR, uid, gid, dir->xattr_version == 0);
+  int r = _getattr(dir, CEPH_STAT_CAP_XATTR, perms.uid(), perms.gid(), dir->xattr_version == 0);
   if (r < 0)
     goto out;
 
index d193fd207394c2763f955f8d2e67b21dfdcc1939..b4d2d1d763780b4cb349615048ef8fb0419221db 100644 (file)
@@ -1009,7 +1009,8 @@ private:
   void _release_filelocks(Fh *fh);
   void _update_lock_state(struct flock *fl, uint64_t owner, ceph_lock_state_t *lock_state);
 
-  int _posix_acl_create(Inode *dir, mode_t *mode, bufferlist& xattrs_bl, int uid, int gid);
+  int _posix_acl_create(Inode *dir, mode_t *mode, bufferlist& xattrs_bl,
+                       const UserPerm& perms);
   int _posix_acl_chmod(Inode *in, mode_t mode, const UserPerm& perms);
   int _posix_acl_permission(Inode *in, uid_t uid, UserGroups& groups, unsigned want);