ceph: Convert struct ceph_mds_request to use kuid_t and kgid_t
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 31 Jan 2013 12:01:53 +0000 (04:01 -0800)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 12 Feb 2013 11:19:26 +0000 (03:19 -0800)
Hold the uid and gid for a pending ceph mds request using the types
kuid_t and kgid_t.  When a request message is finally created convert
the kuid_t and kgid_t values into uids and gids in the initial user
namespace.

Cc: Sage Weil <sage@inktank.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/ceph/mds_client.c
fs/ceph/mds_client.h

index 9165eb8..7a3dfe0 100644 (file)
@@ -1658,8 +1658,8 @@ static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc,
 
        head->mdsmap_epoch = cpu_to_le32(mdsc->mdsmap->m_epoch);
        head->op = cpu_to_le32(req->r_op);
-       head->caller_uid = cpu_to_le32(req->r_uid);
-       head->caller_gid = cpu_to_le32(req->r_gid);
+       head->caller_uid = cpu_to_le32(from_kuid(&init_user_ns, req->r_uid));
+       head->caller_gid = cpu_to_le32(from_kgid(&init_user_ns, req->r_gid));
        head->args = req->r_args;
 
        ceph_encode_filepath(&p, end, ino1, path1);
index dd26846..ff4188b 100644 (file)
@@ -184,8 +184,8 @@ struct ceph_mds_request {
 
        union ceph_mds_request_args r_args;
        int r_fmode;        /* file mode, if expecting cap */
-       uid_t r_uid;
-       gid_t r_gid;
+       kuid_t r_uid;
+       kgid_t r_gid;
 
        /* for choosing which mds to send this request to */
        int r_direct_mode;