Lines Matching refs:nd

372     struct nfsrv_descript *nd, struct thread *p, int vpislocked,  in nfsvno_getattr()  argument
403 (nd->nd_flag & ND_NFSV4) == 0 || in nfsvno_getattr()
409 error = nfsrv_proxyds(vp, 0, 0, nd->nd_cred, p, in nfsvno_getattr()
416 error = VOP_GETATTR(vp, &nvap->na_vattr, nd->nd_cred); in nfsvno_getattr()
612 nfsvno_namei(struct nfsrv_descript *nd, struct nameidata *ndp, in nfsvno_namei() argument
647 if (nd->nd_flag & ND_PUBLOOKUP) { in nfsvno_namei()
666 (nd->nd_flag & ND_NFSV4) == 0) { in nfsvno_namei()
714 if (!(nd->nd_flag & ND_PUBLOOKUP)) { in nfsvno_namei()
799 NFSEXITCODE2(error, nd); in nfsvno_namei()
1178 nfsvno_createsub(struct nfsrv_descript *nd, struct nameidata *ndp, in nfsvno_createsub() argument
1186 error = nd->nd_repstat; in nfsvno_createsub()
1199 nd->nd_cred, p); in nfsvno_createsub()
1211 &nvap->na_vattr, nd->nd_cred); in nfsvno_createsub()
1228 (error = priv_check_cred(nd->nd_cred, PRIV_VFS_MKNOD_DEV))) { in nfsvno_createsub()
1263 nd->nd_cred, exp, p, NFSACCCHK_NOOVERRIDE, in nfsvno_createsub()
1270 nd->nd_cred, p, exp); in nfsvno_createsub()
1412 nfsvno_getsymlink(struct nfsrv_descript *nd, struct nfsvattr *nvap, in nfsvno_getsymlink() argument
1422 if ((nd->nd_flag & ND_NFSV3) && in nfsvno_getsymlink()
1423 (error = nfsrv_sattr(nd, NULL, nvap, NULL, NULL, p))) in nfsvno_getsymlink()
1432 error = nfsrv_mtostr(nd, pathcp, len); in nfsvno_getsymlink()
1435 if (nd->nd_flag & ND_NFSV2) { in nfsvno_getsymlink()
1441 NFSEXITCODE2(0, nd); in nfsvno_getsymlink()
1446 NFSEXITCODE2(error, nd); in nfsvno_getsymlink()
1847 nfsvno_open(struct nfsrv_descript *nd, struct nameidata *ndp, in nfsvno_open() argument
1864 oldrepstat = nd->nd_repstat; in nfsvno_open()
1865 nd->nd_repstat = nfsrv_opencheck(clientid, in nfsvno_open()
1866 stateidp, stp, NULL, nd, p, nd->nd_repstat); in nfsvno_open()
1867 if (nd->nd_repstat != 0 && oldrepstat == 0) in nfsvno_open()
1870 if (!nd->nd_repstat) { in nfsvno_open()
1872 nd->nd_repstat = VOP_CREATE(ndp->ni_dvp, in nfsvno_open()
1875 if (nd->nd_repstat == 0) { in nfsvno_open()
1884 VOP_VPUT_PAIR(ndp->ni_dvp, nd->nd_repstat == 0 ? in nfsvno_open()
1887 if (!nd->nd_repstat) { in nfsvno_open()
1893 nd->nd_repstat = VOP_SETATTR(ndp->ni_vp, in nfsvno_open()
1895 if (nd->nd_repstat != 0) { in nfsvno_open()
1898 nd->nd_repstat = NFSERR_NOTSUPP; in nfsvno_open()
1903 nfsrv_fixattr(nd, ndp->ni_vp, nvap, in nfsvno_open()
1922 nd->nd_repstat = nfsvno_accchk(vp, in nfsvno_open()
1926 nd->nd_repstat = nfsrv_opencheck(clientid, in nfsvno_open()
1927 stateidp, stp, vp, nd, p, nd->nd_repstat); in nfsvno_open()
1928 if (!nd->nd_repstat) { in nfsvno_open()
1932 nd->nd_repstat = nfsvno_setattr(vp, in nfsvno_open()
1936 nd->nd_repstat = nfsrv_opencheck(clientid, in nfsvno_open()
1937 stateidp, stp, vp, nd, p, nd->nd_repstat); in nfsvno_open()
1959 NFSEXITCODE2(0, nd); in nfsvno_open()
1970 struct nfsrv_descript *nd, struct thread *p) in nfsvno_updfilerev() argument
1981 (void) VOP_SETATTR(vp, &va, nd->nd_cred); in nfsvno_updfilerev()
1982 (void) nfsvno_getattr(vp, nvap, nd, p, 1, NULL); in nfsvno_updfilerev()
1990 nfsvno_fillattr(struct nfsrv_descript *nd, struct mount *mp, struct vnode *vp, in nfsvno_fillattr() argument
2010 error = nfsv4_fillattr(nd, mp, vp, NULL, &nvap->na_vattr, fhp, rderror, in nfsvno_fillattr()
2014 NFSEXITCODE2(0, nd); in nfsvno_fillattr()
2043 nfsrvd_readdir(struct nfsrv_descript *nd, int isdgram, in nfsrvd_readdir() argument
2060 if (nd->nd_repstat) { in nfsrvd_readdir()
2061 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdir()
2064 if (nd->nd_flag & ND_NFSV2) { in nfsrvd_readdir()
2076 if (cnt > NFS_SRVMAXDATA(nd) || cnt < 0) in nfsrvd_readdir()
2077 cnt = NFS_SRVMAXDATA(nd); in nfsrvd_readdir()
2080 if (nd->nd_flag & ND_NFSV3) { in nfsrvd_readdir()
2081 nd->nd_repstat = getret = nfsvno_getattr(vp, &at, nd, p, 1, in nfsrvd_readdir()
2090 if (!nd->nd_repstat && toff && verf != at.na_filerev) in nfsrvd_readdir()
2091 nd->nd_repstat = NFSERR_BAD_COOKIE; in nfsrvd_readdir()
2094 if (!nd->nd_repstat && vp->v_type != VDIR) in nfsrvd_readdir()
2095 nd->nd_repstat = NFSERR_NOTDIR; in nfsrvd_readdir()
2096 if (nd->nd_repstat == 0 && cnt == 0) { in nfsrvd_readdir()
2097 if (nd->nd_flag & ND_NFSV2) in nfsrvd_readdir()
2099 nd->nd_repstat = EPERM; in nfsrvd_readdir()
2101 nd->nd_repstat = NFSERR_TOOSMALL; in nfsrvd_readdir()
2103 if (!nd->nd_repstat) in nfsrvd_readdir()
2104 nd->nd_repstat = nfsvno_accchk(vp, VEXEC, in nfsrvd_readdir()
2105 nd->nd_cred, exp, p, NFSACCCHK_NOOVERRIDE, in nfsrvd_readdir()
2107 if (nd->nd_repstat) { in nfsrvd_readdir()
2109 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdir()
2110 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdir()
2131 nd->nd_repstat = VOP_READDIR(vp, &io, nd->nd_cred, &eofflag, &ncookies, in nfsrvd_readdir()
2137 if (!cookies && !nd->nd_repstat) in nfsrvd_readdir()
2138 nd->nd_repstat = NFSERR_PERM; in nfsrvd_readdir()
2139 if (nd->nd_flag & ND_NFSV3) { in nfsrvd_readdir()
2140 getret = nfsvno_getattr(vp, &at, nd, p, 1, NULL); in nfsrvd_readdir()
2141 if (!nd->nd_repstat) in nfsrvd_readdir()
2142 nd->nd_repstat = getret; in nfsrvd_readdir()
2148 if (nd->nd_repstat) { in nfsrvd_readdir()
2153 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdir()
2154 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdir()
2163 if (nd->nd_flag & ND_NFSV2) { in nfsrvd_readdir()
2166 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdir()
2216 (nd->nd_flag & (ND_TLS | ND_EXTPG | ND_SAVEREPLY)) == ND_TLS && in nfsrvd_readdir()
2217 (nd->nd_flag & (ND_NFSV4 | ND_NFSV41)) != ND_NFSV4) in nfsrvd_readdir()
2218 nd->nd_flag |= ND_EXTPG; in nfsrvd_readdir()
2226 if (nd->nd_flag & ND_NFSV3) { in nfsrvd_readdir()
2227 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdir()
2240 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdir()
2253 if (nd->nd_flag & ND_NFSV3) { in nfsrvd_readdir()
2262 (void) nfsm_strtom(nd, dp->d_name, nlen); in nfsrvd_readdir()
2263 if (nd->nd_flag & ND_NFSV3) { in nfsrvd_readdir()
2288 NFSEXITCODE2(0, nd); in nfsrvd_readdir()
2292 NFSEXITCODE2(error, nd); in nfsrvd_readdir()
2300 nfsrvd_readdirplus(struct nfsrv_descript *nd, int isdgram, in nfsrvd_readdirplus() argument
2327 if (nd->nd_repstat) { in nfsrvd_readdirplus()
2328 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdirplus()
2344 if (cnt > NFS_SRVMAXDATA(nd) || cnt < 0) in nfsrvd_readdirplus()
2345 cnt = NFS_SRVMAXDATA(nd); in nfsrvd_readdirplus()
2359 else if (siz > NFS_SRVMAXDATA(nd)) in nfsrvd_readdirplus()
2360 siz = NFS_SRVMAXDATA(nd); in nfsrvd_readdirplus()
2363 if (nd->nd_flag & ND_NFSV4) { in nfsrvd_readdirplus()
2364 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL); in nfsrvd_readdirplus()
2369 NFSCLRNOTFILLABLE_ATTRBIT(&attrbits, nd); in nfsrvd_readdirplus()
2386 nd->nd_repstat = getret = nfsvno_getattr(vp, &at, nd, p, 1, NULL); in nfsrvd_readdirplus()
2388 if (!nd->nd_repstat) { in nfsrvd_readdirplus()
2396 if (nd->nd_flag & ND_NFSV4) { in nfsrvd_readdirplus()
2397 nd->nd_repstat = NFSERR_NOTSAME; in nfsrvd_readdirplus()
2399 nd->nd_repstat = NFSERR_BAD_COOKIE; in nfsrvd_readdirplus()
2404 if (!nd->nd_repstat && vp->v_type != VDIR) in nfsrvd_readdirplus()
2405 nd->nd_repstat = NFSERR_NOTDIR; in nfsrvd_readdirplus()
2406 if (!nd->nd_repstat && cnt == 0) in nfsrvd_readdirplus()
2407 nd->nd_repstat = NFSERR_TOOSMALL; in nfsrvd_readdirplus()
2408 if (!nd->nd_repstat) in nfsrvd_readdirplus()
2409 nd->nd_repstat = nfsvno_accchk(vp, VEXEC, in nfsrvd_readdirplus()
2410 nd->nd_cred, exp, p, NFSACCCHK_NOOVERRIDE, in nfsrvd_readdirplus()
2412 if (nd->nd_repstat) { in nfsrvd_readdirplus()
2414 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdirplus()
2415 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdirplus()
2438 nd->nd_repstat = VOP_READDIR(vp, &io, nd->nd_cred, &eofflag, &ncookies, in nfsrvd_readdirplus()
2444 getret = nfsvno_getattr(vp, &at, nd, p, 1, NULL); in nfsrvd_readdirplus()
2446 if (!cookies && !nd->nd_repstat) in nfsrvd_readdirplus()
2447 nd->nd_repstat = NFSERR_PERM; in nfsrvd_readdirplus()
2448 if (!nd->nd_repstat) in nfsrvd_readdirplus()
2449 nd->nd_repstat = getret; in nfsrvd_readdirplus()
2450 if (nd->nd_repstat) { in nfsrvd_readdirplus()
2455 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdirplus()
2456 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdirplus()
2465 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdirplus()
2466 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdirplus()
2496 ((nd->nd_flag & ND_NFSV4) && in nfsrvd_readdirplus()
2517 nd->nd_repstat = vfs_busy(mp, 0); in nfsrvd_readdirplus()
2519 if (nd->nd_repstat != 0) { in nfsrvd_readdirplus()
2523 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdirplus()
2524 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdirplus()
2543 cn.cn_cred = nd->nd_cred; in nfsrvd_readdirplus()
2558 (nd->nd_flag & (ND_TLS | ND_EXTPG | ND_SAVEREPLY)) == ND_TLS && in nfsrvd_readdirplus()
2559 (nd->nd_flag & (ND_NFSV4 | ND_NFSV41)) != ND_NFSV4) in nfsrvd_readdirplus()
2560 nd->nd_flag |= ND_EXTPG; in nfsrvd_readdirplus()
2566 mb0 = nd->nd_mb; in nfsrvd_readdirplus()
2567 bpos0 = nd->nd_bpos; in nfsrvd_readdirplus()
2568 bextpg0 = nd->nd_bextpg; in nfsrvd_readdirplus()
2569 bextpgsiz0 = nd->nd_bextpgsiz; in nfsrvd_readdirplus()
2577 if (nd->nd_flag & ND_NFSV3) { in nfsrvd_readdirplus()
2579 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdirplus()
2589 mb1 = nd->nd_mb; in nfsrvd_readdirplus()
2590 bpos1 = nd->nd_bpos; in nfsrvd_readdirplus()
2591 bextpg1 = nd->nd_bextpg; in nfsrvd_readdirplus()
2592 bextpgsiz1 = nd->nd_bextpgsiz; in nfsrvd_readdirplus()
2600 ((nd->nd_flag & ND_NFSV3) || nlen > 2 || in nfsrvd_readdirplus()
2607 mb1 = nd->nd_mb; in nfsrvd_readdirplus()
2608 bpos1 = nd->nd_bpos; in nfsrvd_readdirplus()
2609 bextpg1 = nd->nd_bextpg; in nfsrvd_readdirplus()
2610 bextpgsiz1 = nd->nd_bextpgsiz; in nfsrvd_readdirplus()
2623 if ((nd->nd_flag & ND_NFSV3) || in nfsrvd_readdirplus()
2628 if (nd->nd_flag & ND_NFSV4) in nfsrvd_readdirplus()
2645 nd->nd_cred; in nfsrvd_readdirplus()
2658 nd->nd_repstat = EPERM; in nfsrvd_readdirplus()
2682 (nd->nd_flag & ND_NFSV4) != 0 && in nfsrvd_readdirplus()
2712 ((nd->nd_flag & ND_NFSV3) || in nfsrvd_readdirplus()
2716 r = nfsvno_getattr(nvp, nvap, nd, p, in nfsrvd_readdirplus()
2720 (nd->nd_flag & ND_NFSV4) != 0 && in nfsrvd_readdirplus()
2757 if ((nd->nd_flag & ND_NFSV3) || in nfsrvd_readdirplus()
2760 nd->nd_repstat = r; in nfsrvd_readdirplus()
2774 if (nd->nd_flag & ND_NFSV3) { in nfsrvd_readdirplus()
2778 dirlen += nfsm_strtom(nd, dp->d_name, nlen); in nfsrvd_readdirplus()
2781 nfsrv_postopattr(nd, 0, nvap); in nfsrvd_readdirplus()
2782 dirlen += nfsm_fhtom(NULL, nd, (u_int8_t *)&nfh, in nfsrvd_readdirplus()
2791 dirlen += nfsm_strtom(nd, dp->d_name, nlen); in nfsrvd_readdirplus()
2799 dirlen += nfsrv_putreferralattr(nd, in nfsrvd_readdirplus()
2801 &nd->nd_repstat); in nfsrvd_readdirplus()
2802 if (nd->nd_repstat) { in nfsrvd_readdirplus()
2810 dirlen += nfsvno_fillattr(nd, new_mp, in nfsrvd_readdirplus()
2812 nd->nd_cred, p, isdgram, 0, in nfsrvd_readdirplus()
2816 dirlen += nfsvno_fillattr(nd, new_mp, in nfsrvd_readdirplus()
2818 nd->nd_cred, p, isdgram, 0, in nfsrvd_readdirplus()
2844 if (dirlen > cnt || nd->nd_repstat) { in nfsrvd_readdirplus()
2845 if (!nd->nd_repstat && entrycnt == 0) in nfsrvd_readdirplus()
2846 nd->nd_repstat = NFSERR_TOOSMALL; in nfsrvd_readdirplus()
2847 if (nd->nd_repstat) { in nfsrvd_readdirplus()
2848 nfsm_trimtrailing(nd, mb0, bpos0, bextpg0, bextpgsiz0); in nfsrvd_readdirplus()
2849 if (nd->nd_flag & ND_NFSV3) in nfsrvd_readdirplus()
2850 nfsrv_postopattr(nd, getret, &at); in nfsrvd_readdirplus()
2852 nfsm_trimtrailing(nd, mb1, bpos1, bextpg1, bextpgsiz1); in nfsrvd_readdirplus()
2856 if (!nd->nd_repstat) { in nfsrvd_readdirplus()
2868 NFSEXITCODE2(0, nd); in nfsrvd_readdirplus()
2872 NFSEXITCODE2(error, nd); in nfsrvd_readdirplus()
2881 nfsrv_sattr(struct nfsrv_descript *nd, vnode_t vp, struct nfsvattr *nvap, in nfsrv_sattr() argument
2888 switch (nd->nd_flag & (ND_NFSV2 | ND_NFSV3 | ND_NFSV4)) { in nfsrv_sattr()
2963 error = nfsv4_sattr(nd, vp, nvap, attrbitp, aclp, p); in nfsrv_sattr()
2966 NFSEXITCODE2(error, nd); in nfsrv_sattr()
2975 nfsv4_sattr(struct nfsrv_descript *nd, vnode_t vp, struct nfsvattr *nvap, in nfsv4_sattr() argument
2989 error = nfsrv_getattrbits(nd, attrbitp, NULL, &retnotsup); in nfsv4_sattr()
3000 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3024 error = nfsrv_dissectacl(nd, aclp, true, &aceerr, in nfsv4_sattr()
3028 if (aceerr && !nd->nd_repstat) in nfsv4_sattr()
3029 nd->nd_repstat = aceerr; in nfsv4_sattr()
3034 if (!nd->nd_repstat) in nfsv4_sattr()
3035 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3040 if (!nd->nd_repstat) in nfsv4_sattr()
3041 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3047 error = nfsm_advance(nd, NFSM_RNDUP(i), -1); in nfsv4_sattr()
3050 if (!nd->nd_repstat) in nfsv4_sattr()
3051 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3071 error = nfsrv_mtostr(nd, cp, j); in nfsv4_sattr()
3077 if (!nd->nd_repstat) { in nfsv4_sattr()
3078 nd->nd_repstat = nfsv4_strtouid(nd, cp, j, in nfsv4_sattr()
3080 if (!nd->nd_repstat) in nfsv4_sattr()
3098 error = nfsrv_mtostr(nd, cp, j); in nfsv4_sattr()
3104 if (!nd->nd_repstat) { in nfsv4_sattr()
3105 nd->nd_repstat = nfsv4_strtogid(nd, cp, j, in nfsv4_sattr()
3107 if (!nd->nd_repstat) in nfsv4_sattr()
3116 if (!nd->nd_repstat) in nfsv4_sattr()
3117 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3135 if (!nd->nd_repstat) in nfsv4_sattr()
3136 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3170 if ((nd->nd_flag & ND_NFSV41) == 0) in nfsv4_sattr()
3171 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3174 nd->nd_repstat = NFSERR_INVAL; in nfsv4_sattr()
3176 moderet = VOP_GETATTR(vp, &va, nd->nd_cred); in nfsv4_sattr()
3181 nd->nd_repstat = moderet; in nfsv4_sattr()
3185 nd->nd_repstat = NFSERR_ATTRNOTSUPP; in nfsv4_sattr()
3203 error = nfsm_advance(nd, attrsize - attrsum, -1); in nfsv4_sattr()
3206 NFSEXITCODE2(error, nd); in nfsv4_sattr()
3214 nfsd_excred(struct nfsrv_descript *nd, struct nfsexstuff *exp, in nfsd_excred() argument
3222 if (nd->nd_flag & ND_GSS) in nfsd_excred()
3230 error = nfsvno_testexp(nd, exp); in nfsd_excred()
3238 if (NFSVNO_EXV4ONLY(exp) && !(nd->nd_flag & ND_NFSV4)) { in nfsd_excred()
3250 if (((nd->nd_flag & ND_GSS) == 0 && nd->nd_cred->cr_uid == 0) || in nfsd_excred()
3252 (nd->nd_flag & ND_AUTHNONE) != 0) { in nfsd_excred()
3253 nd->nd_cred->cr_uid = credanon->cr_uid; in nfsd_excred()
3254 nd->nd_cred->cr_gid = credanon->cr_gid; in nfsd_excred()
3255 crsetgroups(nd->nd_cred, credanon->cr_ngroups, in nfsd_excred()
3257 } else if ((nd->nd_flag & ND_GSS) == 0) { in nfsd_excred()
3265 nd->nd_cred = nfsrv_getgrpscred(nd->nd_cred); in nfsd_excred()
3270 NFSEXITCODE2(error, nd); in nfsd_excred()
3364 nfsd_fhtovp(struct nfsrv_descript *nd, struct nfsrvfh *nfp, int lktype, in nfsd_fhtovp() argument
3379 nd->nd_repstat = ESTALE; in nfsd_fhtovp()
3389 nd->nd_repstat = ESTALE; in nfsd_fhtovp()
3397 nd->nd_repstat = nfsvno_fhtovp(mp, fhp, nd->nd_nam, lktype, vpp, exp, in nfsd_fhtovp()
3405 if (!nd->nd_repstat && exp->nes_exflag == 0 && in nfsd_fhtovp()
3406 !(nd->nd_flag & ND_NFSV4)) { in nfsd_fhtovp()
3409 nd->nd_repstat = EACCES; in nfsd_fhtovp()
3427 if (!nd->nd_repstat) { in nfsd_fhtovp()
3431 saddr = NFSSOCKADDR(nd->nd_nam, struct sockaddr_in *); in nfsd_fhtovp()
3432 saddr6 = NFSSOCKADDR(nd->nd_nam, struct sockaddr_in6 *); in nfsd_fhtovp()
3433 if (!(nd->nd_flag & ND_NFSV4) && in nfsd_fhtovp()
3439 nd->nd_repstat = (NFSERR_AUTHERR | AUTH_TOOWEAK); in nfsd_fhtovp()
3447 if (!nd->nd_repstat) { in nfsd_fhtovp()
3448 nd->nd_saveduid = nd->nd_cred->cr_uid; in nfsd_fhtovp()
3449 nd->nd_repstat = nfsd_excred(nd, exp, credanon, in nfsd_fhtovp()
3450 nfsrv_checkwrongsec(nd, nextop, (*vpp)->v_type)); in nfsd_fhtovp()
3451 if (nd->nd_repstat) in nfsd_fhtovp()
3456 if (nd->nd_repstat) { in nfsd_fhtovp()
3464 NFSEXITCODE2(0, nd); in nfsd_fhtovp()
3500 struct nameidata nd; in nfsrv_v4rootexport() local
3514 NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, nfsexargp->fspec); in nfsrv_v4rootexport()
3515 if ((error = namei(&nd)) != 0) in nfsrv_v4rootexport()
3517 error = nfsvno_getfh(nd.ni_vp, &fh, p); in nfsrv_v4rootexport()
3518 vrele(nd.ni_vp); in nfsrv_v4rootexport()
3676 nfsvno_v4rootexport(struct nfsrv_descript *nd) in nfsvno_v4rootexport() argument
3682 error = vfs_stdcheckexp(NFSD_VNET(nfsv4root_mnt), nd->nd_nam, &exflags, in nfsvno_v4rootexport()
3692 nd->nd_flag |= ND_EXAUTHSYS; in nfsvno_v4rootexport()
3694 nd->nd_flag |= ND_EXGSS; in nfsvno_v4rootexport()
3696 nd->nd_flag |= ND_EXGSSINTEGRITY; in nfsvno_v4rootexport()
3698 nd->nd_flag |= ND_EXGSSPRIVACY; in nfsvno_v4rootexport()
3703 nd->nd_flag |= ND_EXTLS; in nfsvno_v4rootexport()
3705 nd->nd_flag |= ND_EXTLSCERT; in nfsvno_v4rootexport()
3707 nd->nd_flag |= ND_EXTLSCERTUSER; in nfsvno_v4rootexport()
3942 struct nameidata nd; in nfssvc_srvcall() local
4061 error = nfsrv_lookupfilename(&nd, in nfssvc_srvcall()
4067 nfsrv_dumplocks(nd.ni_vp, dumplocks, in nfssvc_srvcall()
4069 vput(nd.ni_vp); in nfssvc_srvcall()
4115 nfsvno_testexp(struct nfsrv_descript *nd, struct nfsexstuff *exp) in nfsvno_testexp() argument
4119 if ((NFSVNO_EXTLS(exp) && (nd->nd_flag & ND_TLS) == 0) || in nfsvno_testexp()
4121 (nd->nd_flag & ND_TLSCERT) == 0) || in nfsvno_testexp()
4123 (nd->nd_flag & ND_TLSCERTUSER) == 0)) { in nfsvno_testexp()
4124 if ((nd->nd_flag & ND_NFSV4) != 0) in nfsvno_testexp()
4128 else if ((nd->nd_flag & ND_TLS) == 0) in nfsvno_testexp()
4141 if ((nd->nd_flag & ND_NFSV3) != 0 && nd->nd_procnum == NFSPROC_FSINFO) in nfsvno_testexp()
4159 (nd->nd_flag & ND_GSSPRIVACY)) in nfsvno_testexp()
4162 (nd->nd_flag & ND_GSSINTEGRITY)) in nfsvno_testexp()
4165 (nd->nd_flag & ND_GSS)) in nfsvno_testexp()
4168 (nd->nd_flag & ND_GSS) == 0) in nfsvno_testexp()
4171 if ((nd->nd_flag & ND_NFSV4) != 0) in nfsvno_testexp()
5283 struct nfsrv_descript *nd; in nfsrv_readdsrpc() local
5289 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_readdsrpc()
5301 nfscl_reqstart(nd, NFSPROC_READDS, nmp, (u_int8_t *)fhp, sizeof(*fhp), in nfsrv_readdsrpc()
5303 nfsm_stateidtom(nd, &st, NFSSTATEID_PUTSTATEID); in nfsrv_readdsrpc()
5307 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, in nfsrv_readdsrpc()
5310 free(nd, M_TEMP); in nfsrv_readdsrpc()
5313 if (nd->nd_repstat == 0) { in nfsrv_readdsrpc()
5318 m = nd->nd_mrep; in nfsrv_readdsrpc()
5319 while (m != NULL && m != nd->nd_md) { in nfsrv_readdsrpc()
5320 if (m->m_next == nd->nd_md) { in nfsrv_readdsrpc()
5322 m_freem(nd->nd_mrep); in nfsrv_readdsrpc()
5323 nd->nd_mrep = m = nd->nd_md; in nfsrv_readdsrpc()
5337 trimlen = nd->nd_dpos - mtod(m, char *); in nfsrv_readdsrpc()
5366 *mpp = nd->nd_mrep; in nfsrv_readdsrpc()
5368 nd->nd_mrep = NULL; in nfsrv_readdsrpc()
5371 error = nd->nd_repstat; in nfsrv_readdsrpc()
5374 m_freem(nd->nd_mrep); in nfsrv_readdsrpc()
5375 free(nd, M_TEMP); in nfsrv_readdsrpc()
5403 struct nfsrv_descript *nd; in nfsrv_writedsdorpc() local
5408 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_writedsdorpc()
5409 nfscl_reqstart(nd, NFSPROC_WRITE, nmp, (u_int8_t *)fhp, in nfsrv_writedsdorpc()
5422 nfsm_stateidtom(nd, &st, NFSSTATEID_PUTSTATEID); in nfsrv_writedsdorpc()
5437 nd->nd_mb->m_next = m; in nfsrv_writedsdorpc()
5442 nd->nd_mb = m; in nfsrv_writedsdorpc()
5443 nfsm_set(nd, m->m_len); in nfsrv_writedsdorpc()
5455 (void) nfsrv_putattrbit(nd, &attrbits); in nfsrv_writedsdorpc()
5456 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, in nfsrv_writedsdorpc()
5459 free(nd, M_TEMP); in nfsrv_writedsdorpc()
5462 NFSD_DEBUG(4, "nfsrv_writedsdorpc: aft writerpc=%d\n", nd->nd_repstat); in nfsrv_writedsdorpc()
5464 if ((nd->nd_flag & (ND_NOMOREDATA | ND_NFSV4 | ND_V4WCCATTR)) == in nfsrv_writedsdorpc()
5466 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0, NULL, NULL, in nfsrv_writedsdorpc()
5476 nd->nd_flag |= ND_NOMOREDATA; in nfsrv_writedsdorpc()
5478 if (nd->nd_repstat == 0) { in nfsrv_writedsdorpc()
5487 error = nd->nd_repstat; in nfsrv_writedsdorpc()
5497 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0, NULL, NULL, in nfsrv_writedsdorpc()
5502 m_freem(nd->nd_mrep); in nfsrv_writedsdorpc()
5503 free(nd, M_TEMP); in nfsrv_writedsdorpc()
5625 struct nfsrv_descript *nd; in nfsrv_allocatedsdorpc() local
5630 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_allocatedsdorpc()
5631 nfscl_reqstart(nd, NFSPROC_ALLOCATE, nmp, (u_int8_t *)fhp, in nfsrv_allocatedsdorpc()
5644 nfsm_stateidtom(nd, &st, NFSSTATEID_PUTSTATEID); in nfsrv_allocatedsdorpc()
5652 nfsrv_putattrbit(nd, &attrbits); in nfsrv_allocatedsdorpc()
5653 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, in nfsrv_allocatedsdorpc()
5656 free(nd, M_TEMP); in nfsrv_allocatedsdorpc()
5660 nd->nd_repstat); in nfsrv_allocatedsdorpc()
5661 if (nd->nd_repstat == 0) { in nfsrv_allocatedsdorpc()
5663 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0, NULL, NULL, in nfsrv_allocatedsdorpc()
5666 error = nd->nd_repstat; in nfsrv_allocatedsdorpc()
5669 m_freem(nd->nd_mrep); in nfsrv_allocatedsdorpc()
5670 free(nd, M_TEMP); in nfsrv_allocatedsdorpc()
5785 struct nfsrv_descript *nd; in nfsrv_deallocatedsdorpc() local
5790 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_deallocatedsdorpc()
5791 nfscl_reqstart(nd, NFSPROC_DEALLOCATE, nmp, (u_int8_t *)fhp, in nfsrv_deallocatedsdorpc()
5804 nfsm_stateidtom(nd, &st, NFSSTATEID_PUTSTATEID); in nfsrv_deallocatedsdorpc()
5818 nfsrv_putattrbit(nd, &attrbits); in nfsrv_deallocatedsdorpc()
5819 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, in nfsrv_deallocatedsdorpc()
5822 free(nd, M_TEMP); in nfsrv_deallocatedsdorpc()
5826 nd->nd_repstat); in nfsrv_deallocatedsdorpc()
5828 if ((nd->nd_flag & (ND_NOMOREDATA | ND_NFSV4 | ND_V4WCCATTR)) == in nfsrv_deallocatedsdorpc()
5830 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0, NULL, NULL, in nfsrv_deallocatedsdorpc()
5840 nd->nd_flag |= ND_NOMOREDATA; in nfsrv_deallocatedsdorpc()
5842 if (nd->nd_repstat == 0) { in nfsrv_deallocatedsdorpc()
5844 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0, NULL, NULL, in nfsrv_deallocatedsdorpc()
5847 error = nd->nd_repstat; in nfsrv_deallocatedsdorpc()
5850 m_freem(nd->nd_mrep); in nfsrv_deallocatedsdorpc()
5851 free(nd, M_TEMP); in nfsrv_deallocatedsdorpc()
5949 struct nfsrv_descript *nd; in nfsrv_setattrdsdorpc() local
5955 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_setattrdsdorpc()
5966 nfscl_reqstart(nd, NFSPROC_SETATTR, nmp, (u_int8_t *)fhp, sizeof(*fhp), in nfsrv_setattrdsdorpc()
5968 nfsm_stateidtom(nd, &st, NFSSTATEID_PUTSTATEID); in nfsrv_setattrdsdorpc()
5969 nfscl_fillsattr(nd, &nap->na_vattr, vp, NFSSATTR_FULL, 0); in nfsrv_setattrdsdorpc()
5980 (void) nfsrv_putattrbit(nd, &attrbits); in nfsrv_setattrdsdorpc()
5981 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, in nfsrv_setattrdsdorpc()
5984 free(nd, M_TEMP); in nfsrv_setattrdsdorpc()
5988 nd->nd_repstat); in nfsrv_setattrdsdorpc()
5990 if ((nd->nd_flag & (ND_NOMOREDATA | ND_NFSV4 | ND_V4WCCATTR)) == in nfsrv_setattrdsdorpc()
5992 error = nfsv4_loadattr(nd, NULL, dsnap, NULL, NULL, 0, NULL, in nfsrv_setattrdsdorpc()
6002 nd->nd_flag |= ND_NOMOREDATA; in nfsrv_setattrdsdorpc()
6004 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL); in nfsrv_setattrdsdorpc()
6007 if (nd->nd_repstat != 0) in nfsrv_setattrdsdorpc()
6008 error = nd->nd_repstat; in nfsrv_setattrdsdorpc()
6016 error = nfsv4_loadattr(nd, NULL, dsnap, NULL, NULL, 0, NULL, in nfsrv_setattrdsdorpc()
6021 m_freem(nd->nd_mrep); in nfsrv_setattrdsdorpc()
6022 free(nd, M_TEMP); in nfsrv_setattrdsdorpc()
6134 struct nfsrv_descript *nd; in nfsrv_setacldsdorpc() local
6140 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_setacldsdorpc()
6151 nfscl_reqstart(nd, NFSPROC_SETACL, nmp, (u_int8_t *)fhp, sizeof(*fhp), in nfsrv_setacldsdorpc()
6153 nfsm_stateidtom(nd, &st, NFSSTATEID_PUTSTATEID); in nfsrv_setacldsdorpc()
6161 nfsv4_fillattr(nd, NULL, vp, aclp, NULL, NULL, 0, &attrbits, NULL, in nfsrv_setacldsdorpc()
6163 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, in nfsrv_setacldsdorpc()
6166 free(nd, M_TEMP); in nfsrv_setacldsdorpc()
6170 nd->nd_repstat); in nfsrv_setacldsdorpc()
6171 error = nd->nd_repstat; in nfsrv_setacldsdorpc()
6172 m_freem(nd->nd_mrep); in nfsrv_setacldsdorpc()
6173 free(nd, M_TEMP); in nfsrv_setacldsdorpc()
6280 struct nfsrv_descript *nd; in nfsrv_getattrdsrpc() local
6285 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_getattrdsrpc()
6286 nfscl_reqstart(nd, NFSPROC_GETATTR, nmp, (u_int8_t *)fhp, in nfsrv_getattrdsrpc()
6294 (void) nfsrv_putattrbit(nd, &attrbits); in nfsrv_getattrdsrpc()
6295 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, in nfsrv_getattrdsrpc()
6298 free(nd, M_TEMP); in nfsrv_getattrdsrpc()
6302 nd->nd_repstat); in nfsrv_getattrdsrpc()
6303 if (nd->nd_repstat == 0) { in nfsrv_getattrdsrpc()
6304 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0, in nfsrv_getattrdsrpc()
6323 error = nd->nd_repstat; in nfsrv_getattrdsrpc()
6324 m_freem(nd->nd_mrep); in nfsrv_getattrdsrpc()
6325 free(nd, M_TEMP); in nfsrv_getattrdsrpc()
6338 struct nfsrv_descript *nd; in nfsrv_seekdsrpc() local
6353 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK | M_ZERO); in nfsrv_seekdsrpc()
6354 nfscl_reqstart(nd, NFSPROC_SEEKDS, nmp, (u_int8_t *)fhp, in nfsrv_seekdsrpc()
6356 nfsm_stateidtom(nd, &st, NFSSTATEID_PUTSTATEID); in nfsrv_seekdsrpc()
6360 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, in nfsrv_seekdsrpc()
6363 free(nd, M_TEMP); in nfsrv_seekdsrpc()
6366 NFSD_DEBUG(4, "nfsrv_seekdsrpc: aft seekrpc=%d\n", nd->nd_repstat); in nfsrv_seekdsrpc()
6367 if (nd->nd_repstat == 0) { in nfsrv_seekdsrpc()
6375 error = nd->nd_repstat; in nfsrv_seekdsrpc()
6377 m_freem(nd->nd_mrep); in nfsrv_seekdsrpc()
6378 free(nd, M_TEMP); in nfsrv_seekdsrpc()
6614 nfsvno_seek(struct nfsrv_descript *nd, struct vnode *vp, u_long cmd, in nfsvno_seek() argument
6642 ret = nfsvno_getattr(vp, &at, nd, p, 0, NULL); in nfsvno_seek()
6906 nfsvno_rmxattr(struct nfsrv_descript *nd, struct vnode *vp, char *name, in nfsvno_rmxattr() argument
6915 error = nfsrv_checkremove(vp, 0, nd, nd->nd_clientid, p); in nfsvno_rmxattr()
7009 nfsm_trimtrailing(struct nfsrv_descript *nd, struct mbuf *mb, char *bpos, in nfsm_trimtrailing() argument
7041 nd->nd_bextpgsiz = bextpgsiz; in nfsm_trimtrailing()
7042 nd->nd_bextpg = bextpg; in nfsm_trimtrailing()
7045 nd->nd_mb = mb; in nfsm_trimtrailing()
7046 nd->nd_bpos = bpos; in nfsm_trimtrailing()
7058 nfsrv_checkwrongsec(struct nfsrv_descript *nd, int nextop, __enum_uint8(vtype) vtyp) in nfsrv_checkwrongsec() argument
7061 if ((nd->nd_flag & ND_NFSV4) == 0) in nfsrv_checkwrongsec()
7064 if ((nd->nd_flag & ND_LASTOP) != 0) in nfsrv_checkwrongsec()