Lines Matching refs:nd

225 static int nfsrv_skipace(struct nfsrv_descript *nd, int *acesizep);
327 nfscl_reqstart(struct nfsrv_descript *nd, int procnum, struct nfsmount *nmp, in nfscl_reqstart() argument
339 nd->nd_slotseq = NULL; in nfscl_reqstart()
341 nd->nd_flag = ND_NFSV4 | ND_NFSCL; in nfscl_reqstart()
343 nd->nd_flag |= ND_NFSV41; in nfscl_reqstart()
345 nd->nd_flag |= (ND_NFSV41 | ND_NFSV42); in nfscl_reqstart()
347 nd->nd_flag = ND_NFSV3 | ND_NFSCL; in nfscl_reqstart()
350 nd->nd_flag = ND_NFSV4 | ND_NFSCL; in nfscl_reqstart()
352 nd->nd_flag |= ND_NFSV41; in nfscl_reqstart()
354 nd->nd_flag |= (ND_NFSV41 | ND_NFSV42); in nfscl_reqstart()
356 nd->nd_flag = ND_NFSV3 | ND_NFSCL; in nfscl_reqstart()
358 nd->nd_flag = ND_NFSV2 | ND_NFSCL; in nfscl_reqstart()
360 nd->nd_procnum = procnum; in nfscl_reqstart()
361 nd->nd_repstat = 0; in nfscl_reqstart()
362 nd->nd_maxextsiz = 0; in nfscl_reqstart()
372 nd->nd_mreq = nd->nd_mb = mb; in nfscl_reqstart()
373 nd->nd_bpos = mtod(mb, char *); in nfscl_reqstart()
382 if (nd->nd_flag & ND_NFSV4) { in nfscl_reqstart()
385 if ((nd->nd_flag & ND_NFSV41) != 0) { in nfscl_reqstart()
405 (void) nfsm_strtom(nd, nfsv4_opmap[procnum].tag, in nfscl_reqstart()
408 if ((nd->nd_flag & ND_NFSV42) != 0) in nfscl_reqstart()
410 else if ((nd->nd_flag & ND_NFSV41) != 0) in nfscl_reqstart()
417 if ((nd->nd_flag & ND_NFSV41) != 0 && in nfscl_reqstart()
421 nd->nd_flag |= ND_LOOPBADSESS; in nfscl_reqstart()
432 nfsv4_setsequence(nmp, nd, sep, in nfscl_reqstart()
435 nfsv4_setsequence(nmp, nd, sep, in nfscl_reqstart()
441 (void)nfsm_fhtom(nmp, nd, nfhp, fhlen, 0); in nfscl_reqstart()
461 nd->nd_flag |= ND_V4WCCATTR; in nfscl_reqstart()
463 (void) nfsrv_putattrbit(nd, &attrbits); in nfscl_reqstart()
467 (nd->nd_flag & ND_NFSV41) == 0) { in nfscl_reqstart()
472 (void)nfsm_fhtom(NULL, nd, nfhp, fhlen, 0); in nfscl_reqstart()
483 nfsm_stateidtom(struct nfsrv_descript *nd, nfsv4stateid_t *stateidp, int flag) in nfsm_stateidtom() argument
516 nfscl_fillsattr(struct nfsrv_descript *nd, struct vattr *vap, in nfscl_fillsattr() argument
524 switch (nd->nd_flag & (ND_NFSV2 | ND_NFSV3 | ND_NFSV4)) { in nfscl_fillsattr()
642 (void) nfsv4_fillattr(nd, vp->v_mount, vp, NULL, vap, NULL, 0, in nfscl_fillsattr()
652 nfsm_mbufuio(struct nfsrv_descript *nd, struct uio *uiop, int siz) in nfsm_mbufuio() argument
660 mp = nd->nd_md; in nfsm_mbufuio()
661 mbufcp = nd->nd_dpos; in nfsm_mbufuio()
711 nd->nd_dpos = mbufcp; in nfsm_mbufuio()
712 nd->nd_md = mp; in nfsm_mbufuio()
715 error = nfsm_advance(nd, rem, len); in nfsm_mbufuio()
717 nd->nd_dpos += rem; in nfsm_mbufuio()
721 NFSEXITCODE2(error, nd); in nfsm_mbufuio()
732 nfsm_dissct(struct nfsrv_descript *nd, int siz, int how) in nfsm_dissct() argument
741 left = mtod(nd->nd_md, caddr_t) + nd->nd_md->m_len - nd->nd_dpos; in nfsm_dissct()
743 nd->nd_md = nd->nd_md->m_next; in nfsm_dissct()
744 if (nd->nd_md == NULL) in nfsm_dissct()
746 left = nd->nd_md->m_len; in nfsm_dissct()
747 nd->nd_dpos = mtod(nd->nd_md, caddr_t); in nfsm_dissct()
750 retp = nd->nd_dpos; in nfsm_dissct()
751 nd->nd_dpos += siz; in nfsm_dissct()
752 } else if (nd->nd_md->m_next == NULL) { in nfsm_dissct()
760 mp2->m_next = nd->nd_md->m_next; in nfsm_dissct()
761 nd->nd_md->m_next = mp2; in nfsm_dissct()
762 nd->nd_md->m_len -= left; in nfsm_dissct()
763 nd->nd_md = mp2; in nfsm_dissct()
765 NFSBCOPY(nd->nd_dpos, p, left); /* Copy what was left */ in nfsm_dissct()
784 nd->nd_md->m_len = siz; in nfsm_dissct()
785 nd->nd_md = mp2; in nfsm_dissct()
786 nd->nd_dpos = mtod(mp2, caddr_t); in nfsm_dissct()
798 nfsm_advance(struct nfsrv_descript *nd, int offs, int left) in nfsm_advance() argument
818 left = mtod(nd->nd_md, caddr_t) + nd->nd_md->m_len - in nfsm_advance()
819 nd->nd_dpos; in nfsm_advance()
826 nd->nd_md = nd->nd_md->m_next; in nfsm_advance()
827 if (nd->nd_md == NULL) { in nfsm_advance()
831 left = nd->nd_md->m_len; in nfsm_advance()
832 nd->nd_dpos = mtod(nd->nd_md, caddr_t); in nfsm_advance()
834 nd->nd_dpos += offs; in nfsm_advance()
846 nfsm_strtom(struct nfsrv_descript *nd, const char *cp, int siz) in nfsm_strtom() argument
859 m2 = nd->nd_mb; in nfsm_strtom()
860 cp2 = nd->nd_bpos; in nfsm_strtom()
861 if ((nd->nd_flag & ND_EXTPG) != 0) in nfsm_strtom()
862 left = nd->nd_bextpgsiz; in nfsm_strtom()
867 (M_EXT | M_EXTPG) && (nd->nd_flag & ND_EXTPG) != 0) || in nfsm_strtom()
869 (M_EXT | M_EXTPG) && (nd->nd_flag & ND_EXTPG) == 0), in nfsm_strtom()
876 if ((nd->nd_flag & ND_EXTPG) != 0) { in nfsm_strtom()
878 nd->nd_maxextsiz, &nd->nd_bextpg); in nfsm_strtom()
880 m2->m_epg_pa[nd->nd_bextpg]); in nfsm_strtom()
881 nd->nd_bextpgsiz = left = PAGE_SIZE; in nfsm_strtom()
904 if ((nd->nd_flag & ND_EXTPG) != 0) { in nfsm_strtom()
905 nd->nd_bextpgsiz -= xfer; in nfsm_strtom()
914 if ((nd->nd_flag & ND_EXTPG) != 0) { in nfsm_strtom()
915 nd->nd_bextpgsiz -= rem; in nfsm_strtom()
920 nd->nd_mb = m2; in nfsm_strtom()
921 if ((nd->nd_flag & ND_EXTPG) != 0) in nfsm_strtom()
922 nd->nd_bpos = cp2; in nfsm_strtom()
924 nd->nd_bpos = mtod(m2, char *) + m2->m_len; in nfsm_strtom()
961 nfsm_fhtom(struct nfsmount *nmp, struct nfsrv_descript *nd, u_int8_t *fhp, in nfsm_fhtom() argument
972 switch (nd->nd_flag & (ND_NFSV2 | ND_NFSV3 | ND_NFSV4)) { in nfsm_fhtom()
997 (void) nfsm_strtom(nd, fhp, size); in nfsm_fhtom()
1085 nfsm_getfh(struct nfsrv_descript *nd, struct nfsfh **nfhpp) in nfsm_getfh() argument
1092 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) { in nfsm_getfh()
1103 error = nfsrv_mtostr(nd, nfhp->nfh_fh, len); in nfsm_getfh()
1111 NFSEXITCODE2(error, nd); in nfsm_getfh()
1120 nfsrv_dissectacl(struct nfsrv_descript *nd, NFSACL_T *aclp, bool server, in nfsrv_dissectacl() argument
1151 error = nfsrv_dissectace(nd, &aclp->acl_entry[i], in nfsrv_dissectacl()
1154 error = nfsrv_skipace(nd, &acesize); in nfsrv_dissectacl()
1166 NFSEXITCODE2(error, nd); in nfsrv_dissectacl()
1174 nfsrv_skipace(struct nfsrv_descript *nd, int *acesizep) in nfsrv_skipace() argument
1181 error = nfsm_advance(nd, NFSM_RNDUP(len), -1); in nfsrv_skipace()
1184 NFSEXITCODE2(error, nd); in nfsrv_skipace()
1194 nfsrv_getattrbits(struct nfsrv_descript *nd, nfsattrbit_t *attrbitp, int *cntp, in nfsrv_getattrbits() argument
1225 NFSEXITCODE2(error, nd); in nfsrv_getattrbits()
1234 nfsrv_getopbits(struct nfsrv_descript *nd, nfsopbit_t *opbitp, int *cntp) in nfsrv_getopbits() argument
1266 NFSEXITCODE2(error, nd); in nfsrv_getopbits()
1281 nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, in nfsv4_loadattr() argument
1310 error = nfsrv_getattrbits(nd, &attrbits, NULL, &retnotsup); in nfsv4_loadattr()
1312 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL); in nfsv4_loadattr()
1391 error = nfsrv_getattrbits(nd, &retattrbits, in nfsv4_loadattr()
1394 error = nfsrv_getattrbits(nd, &nap->na_suppattr, in nfsv4_loadattr()
1399 NFSSETSUPP_ATTRBIT(&checkattrbits, nd); in nfsv4_loadattr()
1560 error = nfsrv_dissectacl(nd, naclp, true, in nfsv4_loadattr()
1571 error = nfsrv_dissectacl(nd, NULL, true, in nfsv4_loadattr()
1580 error = nfsrv_dissectacl(nd, aclp, false, in nfsv4_loadattr()
1583 error = nfsrv_dissectacl(nd, NULL, false, in nfsv4_loadattr()
1670 error = nfsm_getfh(nd, &tnfhp); in nfsv4_loadattr()
1733 error = nfsrv_getrefstr(nd, &cp, &cp2, &l, &m); in nfsv4_loadattr()
1865 error = nfsm_advance(nd, NFSM_RNDUP(i), -1); in nfsv4_loadattr()
1920 error = nfsrv_mtostr(nd, cp, j); in nfsv4_loadattr()
1928 if (nfsv4_strtouid(nd, cp, j, &uid) || in nfsv4_loadattr()
1933 if (nfsv4_strtouid(nd, cp, j, &uid)) in nfsv4_loadattr()
1954 error = nfsrv_mtostr(nd, cp, j); in nfsv4_loadattr()
1962 if (nfsv4_strtogid(nd, cp, j, &gid) || in nfsv4_loadattr()
1967 if (nfsv4_strtogid(nd, cp, j, &gid)) in nfsv4_loadattr()
2248 error = nfsrv_getattrbits(nd, &retattrbits, in nfsv4_loadattr()
2253 NFSSETSUPP_ATTRBIT(&checkattrbits, nd); in nfsv4_loadattr()
2254 NFSCLRNOTSETABLE_ATTRBIT(&checkattrbits, nd); in nfsv4_loadattr()
2346 error = nfsm_advance(nd, attrsize - attrsum, -1); in nfsv4_loadattr()
2350 NFSEXITCODE2(error, nd); in nfsv4_loadattr()
2524 nfsrv_mtostr(struct nfsrv_descript *nd, char *str, int siz) in nfsrv_mtostr() argument
2531 mp = nd->nd_md; in nfsrv_mtostr()
2532 cp = nd->nd_dpos; in nfsrv_mtostr()
2557 nd->nd_dpos = cp; in nfsrv_mtostr()
2558 nd->nd_md = mp; in nfsrv_mtostr()
2561 error = nfsm_advance(nd, rem, len); in nfsrv_mtostr()
2563 nd->nd_dpos += rem; in nfsrv_mtostr()
2567 NFSEXITCODE2(error, nd); in nfsrv_mtostr()
2575 nfsv4_fillattr(struct nfsrv_descript *nd, struct mount *mp, vnode_t vp, in nfsv4_fillattr() argument
2611 NFSCLRNOTSETABLE_ATTRBIT(retbitp, nd); in nfsv4_fillattr()
2614 NFSCLRNOTFILLABLE_ATTRBIT(retbitp, nd); in nfsv4_fillattr()
2627 nd->nd_repstat = NFSERR_ACCES; in nfsv4_fillattr()
2669 nd->nd_repstat = NFSERR_ACCES; in nfsv4_fillattr()
2694 prefixnum = nfsrv_putattrbit(nd, retbitp); in nfsv4_fillattr()
2705 NFSSETSUPP_ATTRBIT(&attrbits, nd); in nfsv4_fillattr()
2711 retnum += nfsrv_putattrbit(nd, &attrbits); in nfsv4_fillattr()
2781 retnum += nfsrv_buildacl(nd, aclp, vp->v_type, p); in nfsv4_fillattr()
2812 retnum += nfsm_fhtom(NULL, nd, (u_int8_t *)fhp, 0, 0); in nfsv4_fillattr()
2899 retnum += nfsm_strtom(nd, cp, siz); in nfsv4_fillattr()
2906 retnum += nfsm_strtom(nd, cp, siz); in nfsv4_fillattr()
3095 NFSSETSUPP_ATTRBIT(&attrbits, nd); in nfsv4_fillattr()
3096 NFSCLRNOTSETABLE_ATTRBIT(&attrbits, nd); in nfsv4_fillattr()
3098 retnum += nfsrv_putattrbit(nd, &attrbits); in nfsv4_fillattr()
3219 nfsrv_putattrbit(struct nfsrv_descript *nd, nfsattrbit_t *attrbitp) in nfsrv_putattrbit() argument
3240 nfsrv_putopbit(struct nfsrv_descript *nd, nfsopbit_t *opbitp) in nfsrv_putopbit() argument
3429 nfsv4_strtouid(struct nfsrv_descript *nd, u_char *str, int len, uid_t *uidp) in nfsv4_strtouid() argument
3449 if ((nd->nd_flag & ND_KERBV) == 0 && in nfsv4_strtouid()
3450 ((nd->nd_flag & ND_NFSCL) != 0 || in nfsv4_strtouid()
3653 nfsv4_strtogid(struct nfsrv_descript *nd, u_char *str, int len, gid_t *gidp) in nfsv4_strtogid() argument
3673 if ((nd->nd_flag & ND_KERBV) == 0 && in nfsv4_strtogid()
3674 ((nd->nd_flag & ND_NFSCL) != 0 || in nfsv4_strtogid()
3866 struct nfsrv_descript *nd; in nfsrv_getuser() local
3886 nd = &nfsd; in nfsrv_getuser()
3888 nd->nd_flag = ND_GSSINITREPLY; in nfsrv_getuser()
3889 nfsrvd_rephead(nd); in nfsrv_getuser()
3891 nd->nd_procnum = procnum; in nfsrv_getuser()
3900 (void) nfsm_strtom(nd, name, len); in nfsrv_getuser()
3902 error = newnfs_request(nd, NULL, NULL, &NFSD_VNET(nfsrv_nfsuserdsock), in nfsrv_getuser()
3912 m_freem(nd->nd_mrep); in nfsrv_getuser()
3913 error = nd->nd_repstat; in nfsrv_getuser()
4444 nfsrv_getrefstr(struct nfsrv_descript *nd, u_char **fsrootp, u_char **srvp, in nfsrv_getrefstr() argument
4483 error = nfsrv_mtostr(nd, cp, len); in nfsrv_getrefstr()
4523 error = nfsrv_mtostr(nd, cp3, len); in nfsrv_getrefstr()
4542 error = nfsrv_mtostr(nd, lsp->host, len); in nfsrv_getrefstr()
4560 error = nfsrv_mtostr(nd, cp3, len); in nfsrv_getrefstr()
4585 NFSEXITCODE2(0, nd); in nfsrv_getrefstr()
4592 NFSEXITCODE2(error, nd); in nfsrv_getrefstr()
4621 nfsrvd_rephead(struct nfsrv_descript *nd) in nfsrvd_rephead() argument
4625 if ((nd->nd_flag & ND_EXTPG) != 0) { in nfsrvd_rephead()
4627 nd->nd_mreq = nd->nd_mb = mreq; in nfsrvd_rephead()
4628 nd->nd_bpos = (char *)(void *) in nfsrvd_rephead()
4630 nd->nd_bextpg = 0; in nfsrvd_rephead()
4631 nd->nd_bextpgsiz = PAGE_SIZE; in nfsrvd_rephead()
4636 if ((nd->nd_flag & ND_GSSINITREPLY) == 0 && in nfsrvd_rephead()
4637 nfs_bigreply[nd->nd_procnum]) { in nfsrvd_rephead()
4639 nd->nd_mreq = mreq; in nfsrvd_rephead()
4640 nd->nd_mb = mreq; in nfsrvd_rephead()
4643 nd->nd_mreq = mreq; in nfsrvd_rephead()
4644 nd->nd_mb = mreq; in nfsrvd_rephead()
4646 nd->nd_bpos = mtod(mreq, char *); in nfsrvd_rephead()
4650 if ((nd->nd_flag & ND_GSSINITREPLY) == 0) in nfsrvd_rephead()
4651 NFSM_BUILD(nd->nd_errp, int *, NFSX_UNSIGNED); in nfsrvd_rephead()
4695 nfsv4_getipaddr(struct nfsrv_descript *nd, struct sockaddr_in *sin, in nfsv4_getipaddr() argument
4709 error = nfsrv_mtostr(nd, protocol, i); in nfsv4_getipaddr()
4729 error = nfsm_advance(nd, NFSM_RNDUP(i), -1); in nfsv4_getipaddr()
4743 error = nfsrv_mtostr(nd, addr, i); in nfsv4_getipaddr()
4799 error = nfsm_advance(nd, NFSM_RNDUP(i), -1); in nfsv4_getipaddr()
4902 nfsv4_setsequence(struct nfsmount *nmp, struct nfsrv_descript *nd, in nfsv4_setsequence() argument
4919 nd->nd_maxreq = sep->nfsess_maxreq; in nfsv4_setsequence()
4920 nd->nd_maxresp = sep->nfsess_maxresp; in nfsv4_setsequence()
4924 nd->nd_sequence = tl; in nfsv4_setsequence()
4927 nd->nd_slotseq = tl; in nfsv4_setsequence()
4929 nd->nd_flag |= ND_HASSLOTID; in nfsv4_setsequence()
4930 nd->nd_slotid = slotpos; in nfsv4_setsequence()
4952 nd->nd_flag |= ND_HASSEQUENCE; in nfsv4_setsequence()
5087 nfsm_set(struct nfsrv_descript *nd, u_int offs) in nfsm_set() argument
5092 m = nd->nd_mb; in nfsm_set()
5094 nd->nd_bextpg = 0; in nfsm_set()
5096 if (nd->nd_bextpg == 0) in nfsm_set()
5099 rlen = m_epg_pagelen(m, nd->nd_bextpg, 0); in nfsm_set()
5103 nd->nd_bextpg++; in nfsm_set()
5104 if (nd->nd_bextpg == m->m_epg_npgs) { in nfsm_set()
5107 nd->nd_bextpg--; in nfsm_set()
5111 nd->nd_bpos = (char *)(void *) in nfsm_set()
5112 PHYS_TO_DMAP(m->m_epg_pa[nd->nd_bextpg]); in nfsm_set()
5113 if (nd->nd_bextpg == 0) in nfsm_set()
5114 nd->nd_bpos += m->m_epg_1st_off; in nfsm_set()
5116 nd->nd_bpos += offs; in nfsm_set()
5117 nd->nd_bextpgsiz = rlen - offs; in nfsm_set()
5118 } else if (nd->nd_bextpg == 0) in nfsm_set()
5119 nd->nd_bextpgsiz = PAGE_SIZE - m->m_epg_1st_off; in nfsm_set()
5121 nd->nd_bextpgsiz = PAGE_SIZE; in nfsm_set()
5123 nd->nd_bpos = mtod(m, char *) + offs; in nfsm_set()
5161 struct nfsrv_descript *nd = &nfsd; in nfsrpc_destroysession() local
5168 nfscl_reqstart(nd, NFSPROC_DESTROYSESSION, nmp, NULL, 0, NULL, NULL, 0, in nfsrpc_destroysession()
5172 nd->nd_flag |= ND_USEGSSNAME; in nfsrpc_destroysession()
5173 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, in nfsrpc_destroysession()
5177 error = nd->nd_repstat; in nfsrpc_destroysession()
5178 m_freem(nd->nd_mrep); in nfsrpc_destroysession()