diff options
author | Trond Myklebust <trondmy@gmail.com> | 2019-04-09 12:13:42 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2019-04-24 09:46:35 -0400 |
commit | e45d1a1835b889676374fb74ff4d0e6b06ad173f (patch) | |
tree | ccb99869e92ef128774ab5a9f2405d3e869a4a80 /fs/nfsd/nfs4xdr.c | |
parent | e6667c73a27d80078f8d7fca516d6b14bc4e18a7 (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.c | 5 |
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 | |||
521 | static __be32 nfsd4_decode_cb_sec(struct nfsd4_compoundargs *argp, struct nfsd4_cb_sec *cbs) | 521 | static __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; |