Lines Matching refs:nd
1339 nfsrv_wcc(struct nfsrv_descript *nd, int before_ret,
1356 nfsrv_postopattr(nd, after_ret, after_nvap);
1360 nfsrv_postopattr(struct nfsrv_descript *nd, int after_ret,
1370 nfsrv_fillattr(nd, after_nvap);
1379 nfsrv_fillattr(struct nfsrv_descript *nd, struct nfsvattr *nvap)
1387 if (nd->nd_flag & ND_NFSV3)
1399 if (nd->nd_flag & ND_NFSV3) {
1439 nfsrv_mtofh(struct nfsrv_descript *nd, struct nfsrvfh *fhp)
1444 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
1447 if (len == 0 && nfs_pubfhset && (nd->nd_flag & ND_NFSV3) &&
1448 nd->nd_procnum == NFSPROC_LOOKUP) {
1449 nd->nd_flag |= ND_PUBLOOKUP;
1453 if (nd->nd_flag & ND_NFSV4) {
1455 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
1458 nd->nd_repstat = NFSERR_BADHANDLE;
1480 if ((nd->nd_flag & ND_NFSV2) && nfs_pubfhset &&
1481 nd->nd_procnum == NFSPROC_LOOKUP &&
1483 nd->nd_flag |= ND_PUBLOOKUP;
1489 NFSEXITCODE2(error, nd);
1502 nfsd_errmap(struct nfsrv_descript *nd)
1506 if (!nd->nd_repstat)
1508 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
1509 if (nd->nd_procnum == NFSPROC_NOOP)
1510 return (txdr_unsigned(nd->nd_repstat & 0xffff));
1511 if (nd->nd_flag & ND_NFSV3)
1512 errp = defaulterrp = nfsrv_v3errmap[nd->nd_procnum];
1513 else if (nd->nd_repstat == EBADRPC)
1515 else if (nd->nd_repstat == NFSERR_MINORVERMISMATCH ||
1516 nd->nd_repstat == NFSERR_OPILLEGAL)
1517 return (txdr_unsigned(nd->nd_repstat));
1518 else if ((nd->nd_flag & ND_NFSV41) != 0) {
1519 if (nd->nd_repstat == EOPNOTSUPP)
1520 nd->nd_repstat = NFSERR_NOTSUPP;
1521 nd->nd_repstat = nfsrv_isannfserr(nd->nd_repstat);
1522 return (txdr_unsigned(nd->nd_repstat));
1524 errp = defaulterrp = nfsrv_v4errmap[nd->nd_procnum];
1526 if (*errp == nd->nd_repstat)
1527 return (txdr_unsigned(nd->nd_repstat));
1530 if (nd->nd_repstat <= NFSERR_REMOTE)
1531 return (txdr_unsigned(nfsrv_v2errmap[nd->nd_repstat - 1]));
1558 nfsrv_checkuidgid(struct nfsrv_descript *nd, struct nfsvattr *nvap)
1574 if (nd->nd_cred->cr_uid == 0)
1576 if ((NFSVNO_ISSETUID(nvap) && nvap->na_uid != nd->nd_cred->cr_uid) ||
1577 (NFSVNO_ISSETGID(nvap) && nvap->na_gid != nd->nd_cred->cr_gid &&
1578 !groupmember(nvap->na_gid, nd->nd_cred)))
1582 NFSEXITCODE2(error, nd);
1591 nfsrv_fixattr(struct nfsrv_descript *nd, vnode_t vp,
1606 if ((nd->nd_flag & ND_NFSV4) == 0)
1610 tuid = nd->nd_cred->cr_uid;
1613 nvap->na_uid != nd->nd_cred->cr_uid) {
1614 if (nd->nd_cred->cr_uid == 0) {
1636 if (nvap->na_gid == nd->nd_cred->cr_gid ||
1637 groupmember(nvap->na_gid, nd->nd_cred)) {
1638 nd->nd_cred->cr_uid = 0;
1647 error = nfsvno_setattr(vp, &nva, nd->nd_cred, p, exp);
1660 error = nfsrv_setacl(vp, aclp, nd->nd_cred, p);
1668 nd->nd_cred->cr_uid = tuid;
1671 NFSEXITCODE2(0, nd);
1717 nfsrv_putreferralattr(struct nfsrv_descript *nd, nfsattrbit_t *retbitp,
1758 prefixnum = nfsrv_putattrbit(nd, &tmpbits);
1790 retnum += nfsm_strtom(nd, "/", 1);
1804 retnum += nfsm_strtom(nd, cp, len);
1812 retnum += nfsm_strtom(nd, cp, len);
1836 nfsrv_parsename(struct nfsrv_descript *nd, char *bufp, u_long *hashp,
1854 if ((nd->nd_flag & ND_NFSV4) && nd->nd_procnum == NFSV4OP_LOOKUPP) {
1867 nd->nd_repstat = NFSERR_NAMETOL;
1871 nd->nd_repstat = NFSERR_INVAL;
1879 fromcp = nd->nd_dpos;
1880 md = nd->nd_md;
1893 nd->nd_repstat = EACCES;
1902 if (nd->nd_flag & ND_PUBLOOKUP) {
1930 nd->nd_repstat = EACCES;
1944 nd->nd_repstat = EACCES;
1964 nd->nd_repstat = EACCES;
1980 if (nd->nd_flag & ND_NFSV4)
1981 nd->nd_repstat = NFSERR_BADNAME;
1983 nd->nd_repstat = EACCES;
1994 nd->nd_md = md;
1995 nd->nd_dpos = fromcp;
1999 nd->nd_dpos += i;
2001 error = nfsm_advance(nd, i, rem);
2011 if (nd->nd_flag & ND_NFSV4) {
2015 nd->nd_repstat = NFSERR_BADNAME;
2021 nd->nd_repstat = NFSERR_INVAL;
2032 NFSEXITCODE2(error, nd);
2074 nfsd_checkrootexp(struct nfsrv_descript *nd)
2077 if ((nd->nd_flag & (ND_GSS | ND_EXAUTHSYS)) == ND_EXAUTHSYS)
2079 if ((nd->nd_flag & (ND_GSSINTEGRITY | ND_EXGSSINTEGRITY)) ==
2082 if ((nd->nd_flag & (ND_GSSPRIVACY | ND_EXGSSPRIVACY)) ==
2085 if ((nd->nd_flag & (ND_GSS | ND_GSSINTEGRITY | ND_GSSPRIVACY |
2096 nfsd_getminorvers(struct nfsrv_descript *nd, u_char *tag, u_char **tagstrp,
2113 error = nfsrv_mtostr(nd, tagstr, taglen);
2120 nd->nd_flag |= ND_NFSV41;