Fix the new NFSv4 client so that it uses the same uid as
was used for doing a mount when performing system operations on AUTH_SYS mounts. This resolved an issue when mounting a Linux server. Found during testing at the recent NFSv4 interoperability Bakeathon. MFC after: 2 weeks
This commit is contained in:
parent
e81b1c7129
commit
72b7c8ddb1
@ -526,6 +526,20 @@ newnfs_request(struct nfsrv_descript *nd, struct nfsmount *nmp,
|
||||
else
|
||||
secflavour = RPCSEC_GSS_KRB5;
|
||||
srv_principal = NFSMNT_SRVKRBNAME(nmp);
|
||||
} else if (nmp != NULL && !NFSHASKERB(nmp) &&
|
||||
nd->nd_procnum != NFSPROC_NULL &&
|
||||
(nd->nd_flag & ND_USEGSSNAME) != 0) {
|
||||
/*
|
||||
* Use the uid that did the mount when the RPC is doing
|
||||
* NFSv4 system operations, as indicated by the
|
||||
* ND_USEGSSNAME flag, for the AUTH_SYS case.
|
||||
*/
|
||||
saved_uid = cred->cr_uid;
|
||||
if (nmp->nm_uid != (uid_t)-1)
|
||||
cred->cr_uid = nmp->nm_uid;
|
||||
else
|
||||
cred->cr_uid = 0;
|
||||
set_uid = 1;
|
||||
}
|
||||
|
||||
if (nmp != NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user