Fix the experimental NFS client so that it can create Unix
domain sockets on an NFSv4 mount point. It was generating incorrect XDR in the request for this case. Tested by: infofarmer MFC after: 2 weeks
This commit is contained in:
parent
9f56916a97
commit
71291348da
@ -1626,10 +1626,15 @@ nfsrpc_mknod(vnode_t dvp, char *name, int namelen, struct vattr *vap,
|
||||
return (ENAMETOOLONG);
|
||||
NFSCL_REQSTART(nd, NFSPROC_MKNOD, dvp);
|
||||
if (nd->nd_flag & ND_NFSV4) {
|
||||
NFSM_BUILD(tl, u_int32_t *, 3 * NFSX_UNSIGNED);
|
||||
*tl++ = vtonfsv34_type(vtyp);
|
||||
*tl++ = txdr_unsigned(NFSMAJOR(rdev));
|
||||
*tl = txdr_unsigned(NFSMINOR(rdev));
|
||||
if (vtyp == VBLK || vtyp == VCHR) {
|
||||
NFSM_BUILD(tl, u_int32_t *, 3 * NFSX_UNSIGNED);
|
||||
*tl++ = vtonfsv34_type(vtyp);
|
||||
*tl++ = txdr_unsigned(NFSMAJOR(rdev));
|
||||
*tl = txdr_unsigned(NFSMINOR(rdev));
|
||||
} else {
|
||||
NFSM_BUILD(tl, u_int32_t *, NFSX_UNSIGNED);
|
||||
*tl = vtonfsv34_type(vtyp);
|
||||
}
|
||||
}
|
||||
(void) nfsm_strtom(nd, name, namelen);
|
||||
if (nd->nd_flag & ND_NFSV3) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user