int ceph_ll_statfs(struct ceph_mount_info *cmount, struct Inode *in,
struct statvfs *stbuf);
int ceph_ll_readlink(struct ceph_mount_info *cmount, struct Inode *in,
- char *buf, size_t bufsize, int uid, int gid);
+ char *buf, size_t bufsize, const UserPerm *perms);
int ceph_ll_symlink(struct ceph_mount_info *cmount,
Inode *in, const char *name, const char *value,
Inode **out, struct ceph_statx *stx,
unsigned want, unsigned flags,
const UserPerm *perms);
int ceph_ll_rmdir(struct ceph_mount_info *cmount, struct Inode *in,
- const char *name, int uid, int gid);
+ const char *name, const UserPerm *perms);
uint32_t ceph_ll_stripe_unit(struct ceph_mount_info *cmount,
struct Inode *in);
uint32_t ceph_ll_file_layout(struct ceph_mount_info *cmount,
return (cmount->get_client()->ll_statfs(in, stbuf, cmount->default_perms));
}
-extern "C" int ceph_ll_readlink(class ceph_mount_info *cmount,
- Inode *in, char *buf, size_t bufsiz, int uid,
- int gid)
+extern "C" int ceph_ll_readlink(class ceph_mount_info *cmount, Inode *in,
+ char *buf, size_t bufsiz,
+ const UserPerm *perms)
{
- UserPerm perms(uid, gid);
- return (cmount->get_client()->ll_readlink(in, buf, bufsiz, perms));
+ return cmount->get_client()->ll_readlink(in, buf, bufsiz, *perms);
}
extern "C" int ceph_ll_symlink(class ceph_mount_info *cmount,
extern "C" int ceph_ll_rmdir(class ceph_mount_info *cmount,
Inode *in, const char *name,
- int uid, int gid)
+ const UserPerm *perms)
{
- UserPerm perms(uid, gid);
- return (cmount->get_client()->ll_rmdir(in, name, perms));
+ return cmount->get_client()->ll_rmdir(in, name, *perms);
}
extern "C" int ceph_ll_getxattr(class ceph_mount_info *cmount,