summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4xdr.c
diff options
context:
space:
mode:
authorTrond Myklebust <trondmy@gmail.com>2019-04-09 12:13:42 -0400
committerJ. Bruce Fields <bfields@redhat.com>2019-04-24 09:46:35 -0400
commite45d1a1835b889676374fb74ff4d0e6b06ad173f (patch)
treeccb99869e92ef128774ab5a9f2405d3e869a4a80 /fs/nfsd/nfs4xdr.c
parente6667c73a27d80078f8d7fca516d6b14bc4e18a7 (diff)
nfsd: knfsd must use the container user namespace
Convert knfsd to use the user namespace of the container that started the server processes. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4xdr.c')
-rw-r--r--fs/nfsd/nfs4xdr.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index a3a3455826aa..52c4f6daa649 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -521,6 +521,7 @@ nfsd4_decode_access(struct nfsd4_compoundargs *argp, struct nfsd4_access *access
521static __be32 nfsd4_decode_cb_sec(struct nfsd4_compoundargs *argp, struct nfsd4_cb_sec *cbs) 521static __be32 nfsd4_decode_cb_sec(struct nfsd4_compoundargs *argp, struct nfsd4_cb_sec *cbs)
522{ 522{
523 DECODE_HEAD; 523 DECODE_HEAD;
524 struct user_namespace *userns = nfsd_user_namespace(argp->rqstp);
524 u32 dummy, uid, gid; 525 u32 dummy, uid, gid;
525 char *machine_name; 526 char *machine_name;
526 int i; 527 int i;
@@ -563,8 +564,8 @@ static __be32 nfsd4_decode_cb_sec(struct nfsd4_compoundargs *argp, struct nfsd4_
563 dummy = be32_to_cpup(p++); 564 dummy = be32_to_cpup(p++);
564 READ_BUF(dummy * 4); 565 READ_BUF(dummy * 4);
565 if (cbs->flavor == (u32)(-1)) { 566 if (cbs->flavor == (u32)(-1)) {
566 kuid_t kuid = make_kuid(&init_user_ns, uid); 567 kuid_t kuid = make_kuid(userns, uid);
567 kgid_t kgid = make_kgid(&init_user_ns, gid); 568 kgid_t kgid = make_kgid(userns, gid);
568 if (uid_valid(kuid) && gid_valid(kgid)) { 569 if (uid_valid(kuid) && gid_valid(kgid)) {
569 cbs->uid = kuid; 570 cbs->uid = kuid;
570 cbs->gid = kgid; 571 cbs->gid = kgid;