Lines Matching defs:nd
242 struct nfsrv_descript nfsd, *nd = &nfsd;
244 NFSCL_REQSTART(nd, NFSPROC_NULL, vp, NULL);
245 error = nfscl_request(nd, vp, p, cred);
246 if (nd->nd_repstat && !error)
247 error = nd->nd_repstat;
248 m_freem(nd->nd_mrep);
306 struct nfsrv_descript nfsd, *nd = &nfsd;
324 NFSCL_REQSTART(nd, NFSPROC_ACCESS, vp, cred);
327 if (nd->nd_flag & ND_NFSV4) {
334 (void) nfsrv_putattrbit(nd, &attrbits);
336 error = nfscl_request(nd, vp, p, cred);
339 if (nd->nd_flag & ND_NFSV3) {
340 error = nfscl_postop_attr(nd, nap, attrflagp);
344 if (!nd->nd_repstat) {
345 if (nd->nd_flag & ND_NFSV4) {
352 if (nd->nd_flag & ND_NFSV4)
353 error = nfscl_postop_attr(nd, nap, attrflagp);
363 error = nd->nd_repstat;
365 m_freem(nd->nd_mrep);
548 struct nfsrv_descript nfsd, *nd = &nfsd;
558 nfscl_reqstart(nd, NFSPROC_OPEN, nmp, nfhp, fhlen, NULL, NULL, 0, 0,
568 (void) nfsm_strtom(nd, op->nfso_own->nfsow_owner, NFSV4CL_LOCKNAMELEN);
591 (void)nfsm_strtom(nd, name, namelen);
596 (void)nfsm_strtom(nd, name, namelen);
604 (void) nfsrv_putattrbit(nd, &attrbits);
606 nd->nd_flag |= ND_USEGSSNAME;
607 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, vp, p, cred,
611 NFSCL_INCRSEQID(op->nfso_own->nfsow_seqid, nd);
612 if (nd->nd_repstat == 0 || (nd->nd_repstat == NFSERR_DELAY &&
613 reclaim != 0 && (nd->nd_flag & ND_NOMOREDATA) == 0)) {
621 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
676 error = nfsrv_dissectace(nd, &ndp->nfsdl_ace, false,
692 /* If the 2nd element == NFS_OK, the Getattr succeeded. */
694 KASSERT(nd->nd_repstat == 0,
696 error = nfsv4_loadattr(nd, NULL, &nfsva, NULL,
707 } else if (nd->nd_repstat == 0) {
714 nd->nd_repstat = 0;
758 if (nd->nd_repstat != 0 && error == 0)
759 error = nd->nd_repstat;
767 m_freem(nd->nd_mrep);
779 struct nfsrv_descript nfsd, *nd = &nfsd;
782 NFSCL_REQSTART(nd, NFSPROC_OPENDOWNGRADE, vp, cred);
794 error = nfscl_request(nd, vp, p, cred);
797 NFSCL_INCRSEQID(op->nfso_own->nfsow_seqid, nd);
798 if (!nd->nd_repstat) {
805 if (nd->nd_repstat && error == 0)
806 error = nd->nd_repstat;
810 m_freem(nd->nd_mrep);
842 struct nfsrv_descript nfsd, *nd = &nfsd;
885 error = nfsrpc_locku(nd, nmp, lp, off,
887 if ((nd->nd_repstat == NFSERR_GRACE ||
888 nd->nd_repstat == NFSERR_DELAY) &&
891 (int)nd->nd_repstat,
893 } while ((nd->nd_repstat == NFSERR_GRACE ||
894 nd->nd_repstat == NFSERR_DELAY) &&
947 nfsrpc_closerpc(struct nfsrv_descript *nd, struct nfsmount *nmp,
954 nfscl_reqstart(nd, NFSPROC_CLOSE, nmp, op->nfso_fh,
968 nd->nd_flag |= ND_USEGSSNAME;
969 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
974 NFSCL_INCRSEQID(op->nfso_own->nfsow_seqid, nd);
975 if (nd->nd_repstat == 0)
977 error = nd->nd_repstat;
981 m_freem(nd->nd_mrep);
993 struct nfsrv_descript nfsd, *nd = &nfsd;
1000 nfscl_reqstart(nd, NFSPROC_OPENCONFIRM, nmp, nfhp, fhlen, NULL, NULL,
1008 error = nfscl_request(nd, vp, p, cred);
1011 NFSCL_INCRSEQID(op->nfso_own->nfsow_seqid, nd);
1012 if (!nd->nd_repstat) {
1019 error = nd->nd_repstat;
1023 m_freem(nd->nd_mrep);
1037 struct nfsrv_descript *nd = &nfsd;
1194 nfscl_reqstart(nd, NFSPROC_SETCLIENTID, nmp, NULL, 0, NULL, NULL, 0, 0,
1199 (void) nfsm_strtom(nd, clp->nfsc_id, clp->nfsc_idlen);
1218 (void) nfsm_strtom(nd, "tcp6", 4);
1230 (void) nfsm_strtom(nd, "tcp", 3);
1240 (void) nfsm_strtom(nd, addr, strlen(addr));
1242 (void) nfsm_strtom(nd, "tcp", 3);
1243 (void) nfsm_strtom(nd, "0.0.0.0.0.0", 11);
1247 nd->nd_flag |= ND_USEGSSNAME;
1248 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
1252 if (nd->nd_repstat == 0) {
1258 m_freem(nd->nd_mrep);
1259 nd->nd_mrep = NULL;
1264 nfscl_reqstart(nd, NFSPROC_SETCLIENTIDCFRM, nmp, NULL, 0, NULL,
1271 nd->nd_flag |= ND_USEGSSNAME;
1272 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p,
1276 m_freem(nd->nd_mrep);
1277 nd->nd_mrep = NULL;
1279 error = nd->nd_repstat;
1281 m_freem(nd->nd_mrep);
1292 struct nfsrv_descript nfsd, *nd = &nfsd;
1309 NFSCL_REQSTART(nd, NFSPROC_GETATTR, vp, cred);
1310 if (nd->nd_flag & ND_NFSV4) {
1312 (void) nfsrv_putattrbit(nd, &attrbits);
1314 error = nfscl_request(nd, vp, p, cred);
1317 if (!nd->nd_repstat)
1318 error = nfsm_loadattr(nd, nap);
1320 error = nd->nd_repstat;
1321 m_freem(nd->nd_mrep);
1333 struct nfsrv_descript nfsd, *nd = &nfsd;
1337 nfscl_reqstart(nd, NFSPROC_GETATTR, nmp, fhp, fhlen, NULL, NULL, 0, 0,
1339 if (nd->nd_flag & ND_NFSV4) {
1343 (void) nfsrv_putattrbit(nd, &attrbits);
1344 } else if (nd->nd_flag & ND_NFSV3) {
1348 nd->nd_flag |= ND_USEGSSNAME;
1349 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
1353 if (nd->nd_repstat == 0) {
1354 if ((nd->nd_flag & ND_NFSV4) != 0)
1355 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0,
1359 error = nfsm_loadattr(nd, nap);
1361 error = nd->nd_repstat;
1362 m_freem(nd->nd_mrep);
1461 struct nfsrv_descript nfsd, *nd = &nfsd;
1466 NFSCL_REQSTART(nd, NFSPROC_SETATTR, vp, cred);
1467 if (nd->nd_flag & ND_NFSV4)
1468 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
1470 nfscl_fillsattr(nd, vap, vp, NFSSATTR_FULL, 0);
1471 if (nd->nd_flag & ND_NFSV3) {
1474 } else if (nd->nd_flag & ND_NFSV4) {
1478 (void) nfsrv_putattrbit(nd, &attrbits);
1480 error = nfscl_request(nd, vp, p, cred);
1483 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4))
1484 error = nfscl_wcc_data(nd, vp, rnap, attrflagp, NULL, NULL);
1485 if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) == ND_NFSV4 && !error)
1486 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
1487 if (!(nd->nd_flag & ND_NFSV3) && !nd->nd_repstat && !error)
1488 error = nfscl_postop_attr(nd, rnap, attrflagp);
1489 m_freem(nd->nd_mrep);
1490 if (nd->nd_repstat && !error)
1491 error = nd->nd_repstat;
1504 struct nfsrv_descript nfsd, *nd = &nfsd;
1539 NFSCL_REQSTART(nd, NFSPROC_LOOKUPP, dvp, cred);
1541 NFSCL_REQSTART(nd, NFSPROC_LOOKUPOPEN, dvp, cred);
1542 nfsm_strtom(nd, name, len);
1544 NFSCL_REQSTART(nd, NFSPROC_LOOKUP, dvp, cred);
1545 (void) nfsm_strtom(nd, name, len);
1547 if (nd->nd_flag & ND_NFSV4) {
1552 (void) nfsrv_putattrbit(nd, &attrbits);
1559 nfsrv_putattrbit(nd, &attrbits);
1573 nfsm_strtom(nd, own, NFSV4CL_LOCKNAMELEN);
1579 error = nfscl_request(nd, dvp, p, cred);
1583 if (nd->nd_repstat) {
1588 if (nd->nd_repstat == NFSERR_NOENT && lookupp) {
1595 m_freem(nd->nd_mrep);
1598 if (nd->nd_flag & ND_NFSV3)
1599 error = nfscl_postop_attr(nd, dnap, dattrflagp);
1600 else if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) ==
1603 error = nfsm_loadattr(nd, dnap);
1609 if (openmode != 0 && (nd->nd_flag & ND_NOMOREDATA) == 0) {
1615 if (openmode != 0 && (nd->nd_flag & ND_NOMOREDATA) == 0) {
1619 error = nfsm_getfh(nd, nfhpp);
1624 if (openmode != 0 && (nd->nd_flag & ND_NOMOREDATA) == 0) {
1628 error = nfsm_loadattr(nd, nap);
1634 nd->nd_repstat = 0;
1640 if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) == ND_NFSV4) {
1642 error = nfsm_loadattr(nd, dnap);
1649 error = nfsm_getfh(nd, nfhpp);
1653 error = nfscl_postop_attr(nd, nap, attrflagp);
1663 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
1732 if ((nd->nd_flag & ND_NFSV3) && !error)
1733 error = nfscl_postop_attr(nd, dnap, dattrflagp);
1735 m_freem(nd->nd_mrep);
1736 if (!error && nd->nd_repstat)
1737 error = nd->nd_repstat;
1750 struct nfsrv_descript nfsd, *nd = &nfsd;
1756 NFSCL_REQSTART(nd, NFSPROC_READLINK, vp, cred);
1757 if (nd->nd_flag & ND_NFSV4) {
1764 (void) nfsrv_putattrbit(nd, &attrbits);
1766 error = nfscl_request(nd, vp, p, cred);
1769 if (nd->nd_flag & ND_NFSV3)
1770 error = nfscl_postop_attr(nd, nap, attrflagp);
1771 if (!nd->nd_repstat && !error) {
1787 error = nfsm_mbufuio(nd, uiop, len);
1788 if ((nd->nd_flag & ND_NFSV4) && !error && cangetattr)
1789 error = nfscl_postop_attr(nd, nap, attrflagp);
1791 if (nd->nd_repstat && !error)
1792 error = nd->nd_repstat;
1794 m_freem(nd->nd_mrep);
1878 struct nfsrv_descript *nd = &nfsd;
1892 nd->nd_mrep = NULL;
1896 NFSCL_REQSTART(nd, NFSPROC_READ, vp, cred);
1897 if (nd->nd_flag & ND_NFSV4)
1898 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
1900 if (nd->nd_flag & ND_NFSV2) {
1913 error = nfscl_request(nd, vp, p, cred);
1916 if (nd->nd_flag & ND_NFSV3) {
1917 error = nfscl_postop_attr(nd, nap, attrflagp);
1918 } else if (!nd->nd_repstat && (nd->nd_flag & ND_NFSV2)) {
1919 error = nfsm_loadattr(nd, nap);
1923 if (nd->nd_repstat || error) {
1925 error = nd->nd_repstat;
1928 if (nd->nd_flag & ND_NFSV3) {
1931 } else if (nd->nd_flag & ND_NFSV4) {
1936 error = nfsm_mbufuio(nd, uiop, retlen);
1939 m_freem(nd->nd_mrep);
1940 nd->nd_mrep = NULL;
1942 if (!(nd->nd_flag & ND_NFSV2)) {
1950 if (nd->nd_mrep != NULL)
1951 m_freem(nd->nd_mrep);
2057 struct nfsrv_descript *nd;
2077 nd = malloc(sizeof(*nd), M_TEMP, M_WAITOK);
2078 nd->nd_mrep = NULL; /* NFSv2 sometimes does a write with */
2079 nd->nd_repstat = 0; /* uio_resid == 0, so the while is not done */
2084 NFSCL_REQSTART(nd, NFSPROC_APPENDWRITE, vp, cred);
2086 NFSCL_REQSTART(nd, NFSPROC_WRITE, vp, cred);
2087 if (nd->nd_flag & ND_NFSV4) {
2091 nfsrv_putattrbit(nd, &attrbits);
2098 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
2104 } else if (nd->nd_flag & ND_NFSV3) {
2129 error = nfsm_uiombuf(nd, uiop, len);
2131 m_freem(nd->nd_mreq);
2132 free(nd, M_TEMP);
2155 if (nd->nd_flag & ND_NFSV4) {
2159 (void) nfsrv_putattrbit(nd, &attrbits);
2161 error = nfscl_request(nd, vp, p, cred);
2163 free(nd, M_TEMP);
2166 if (nd->nd_repstat) {
2178 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
2179 error = nfscl_wcc_data(nd, vp, nap, attrflagp,
2184 if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) ==
2186 nd->nd_repstat == NFSERR_NOTSAME && do_append) {
2195 m_freem(nd->nd_mrep);
2196 nd->nd_mrep = NULL;
2199 nd->nd_repstat = EFBIG;
2201 if (!nd->nd_repstat) {
2207 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
2248 if (nd->nd_flag & ND_NFSV4)
2250 if (nd->nd_flag & (ND_NFSV2 | ND_NFSV4)) {
2251 error = nfsm_loadattr(nd, nap);
2256 error = nd->nd_repstat;
2260 NFSWRITERPC_SETTIME(wccflag, np, nap, (nd->nd_flag & ND_NFSV4));
2261 m_freem(nd->nd_mrep);
2262 nd->nd_mrep = NULL;
2266 if (nd->nd_mrep != NULL)
2267 m_freem(nd->nd_mrep);
2269 if (nd->nd_repstat && !error)
2270 error = nd->nd_repstat;
2271 free(nd, M_TEMP);
2351 struct nfsrv_descript *nd = &nfsd;
2355 NFSCL_REQSTART(nd, NFSPROC_DEALLOCATE, vp, cred);
2356 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
2364 nfsrv_putattrbit(nd, &attrbits);
2365 error = nfscl_request(nd, vp, p, cred);
2369 error = nfscl_wcc_data(nd, vp, nap, attrflagp, &wccflag, NULL);
2372 if (nd->nd_repstat == 0) {
2374 error = nfsm_loadattr(nd, nap);
2381 m_freem(nd->nd_mrep);
2382 if (nd->nd_repstat != 0 && error == 0)
2383 error = nd->nd_repstat;
2400 struct nfsrv_descript nfsd, *nd = &nfsd;
2408 NFSCL_REQSTART(nd, NFSPROC_MKNOD, dvp, cred);
2409 if (nd->nd_flag & ND_NFSV4) {
2420 (void) nfsm_strtom(nd, name, namelen);
2421 if (nd->nd_flag & ND_NFSV3) {
2425 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4))
2426 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_NEWFILE, 0);
2427 if ((nd->nd_flag & ND_NFSV3) &&
2433 if (nd->nd_flag & ND_NFSV4) {
2438 (void) nfsrv_putattrbit(nd, &attrbits);
2440 if (nd->nd_flag & ND_NFSV2)
2441 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_SIZERDEV, rdev);
2442 error = nfscl_request(nd, dvp, p, cred);
2445 if (nd->nd_flag & ND_NFSV4)
2446 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
2447 if (!nd->nd_repstat) {
2448 if (nd->nd_flag & ND_NFSV4) {
2450 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
2454 error = nfscl_mtofh(nd, nfhpp, nnap, attrflagp);
2458 if (nd->nd_flag & ND_NFSV3)
2459 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
2460 if (!error && nd->nd_repstat)
2461 error = nd->nd_repstat;
2463 m_freem(nd->nd_mrep);
2550 struct nfsrv_descript nfsd, *nd = &nfsd;
2557 NFSCL_REQSTART(nd, NFSPROC_CREATE, dvp, cred);
2558 (void) nfsm_strtom(nd, name, namelen);
2559 if (nd->nd_flag & ND_NFSV3) {
2568 nfscl_fillsattr(nd, vap, dvp, 0, 0);
2571 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_SIZE0, 0);
2573 error = nfscl_request(nd, dvp, p, cred);
2576 if (nd->nd_repstat == 0) {
2577 error = nfscl_mtofh(nd, nfhpp, nnap, attrflagp);
2581 if (nd->nd_flag & ND_NFSV3)
2582 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
2583 if (nd->nd_repstat != 0 && error == 0)
2584 error = nd->nd_repstat;
2586 m_freem(nd->nd_mrep);
2599 struct nfsrv_descript nfsd, *nd = &nfsd;
2619 NFSCL_REQSTART(nd, NFSPROC_CREATE, dvp, cred);
2640 (void) nfsm_strtom(nd, owp->nfsow_owner, NFSV4CL_LOCKNAMELEN);
2648 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_NEWFILE,
2656 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_NEWFILE,
2668 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_NEWFILE, 0);
2672 (void) nfsm_strtom(nd, name, namelen);
2678 (void) nfsrv_putattrbit(nd, &attrbits);
2682 (void)nfsm_fhtom(nmp, nd, np->n_fhp->nfh_fh, np->n_fhp->nfh_len, 0);
2685 (void) nfsrv_putattrbit(nd, &attrbits);
2686 error = nfscl_request(nd, dvp, p, cred);
2689 NFSCL_INCRSEQID(owp->nfsow_seqid, nd);
2690 if (nd->nd_repstat == 0) {
2698 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
2751 error = nfsrv_dissectace(nd, &dp->nfsdl_ace, false,
2766 error = nfscl_mtofh(nd, nfhpp, nnap, attrflagp);
2772 error = nfsm_loadattr(nd, dnap);
2844 if (nd->nd_repstat != 0 && error == 0)
2845 error = nd->nd_repstat;
2853 m_freem(nd->nd_mrep);
2865 struct nfsrv_descript nfsd, *nd = &nfsd;
2879 NFSCL_REQSTART(nd, NFSPROC_RETDELEGREMOVE, vp, cred);
2891 (void)nfsm_fhtom(nmp, nd, np->n_fhp->nfh_fh,
2900 NFSCL_REQSTART(nd, NFSPROC_REMOVE, dvp, cred);
2901 (void) nfsm_strtom(nd, name, namelen);
2902 error = nfscl_request(nd, dvp, p, cred);
2905 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
2907 if (ret > 0 && nd->nd_repstat != 0 &&
2908 (nd->nd_flag & ND_NOMOREDATA)) {
2913 m_freem(nd->nd_mrep);
2917 if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) ==
2921 nd->nd_flag |= ND_NOMOREDATA;
2924 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
2926 if (nd->nd_repstat && !error)
2927 error = nd->nd_repstat;
2929 m_freem(nd->nd_mrep);
2943 struct nfsrv_descript nfsd, *nd = &nfsd;
2960 NFSCL_REQSTART(nd, NFSPROC_RETDELEGRENAME2, fvp, cred);
2962 NFSCL_REQSTART(nd, NFSPROC_RETDELEGRENAME1, fvp, cred);
2964 NFSCL_REQSTART(nd, NFSPROC_RETDELEGRENAME1, tvp, cred);
2979 (void)nfsm_fhtom(nmp, nd, np->n_fhp->nfh_fh,
2999 (void)nfsm_fhtom(nmp, nd, np->n_fhp->nfh_fh,
3008 NFSCL_REQSTART(nd, NFSPROC_RENAME, fdvp, cred);
3009 if (nd->nd_flag & ND_NFSV4) {
3013 (void) nfsrv_putattrbit(nd, &attrbits);
3016 (void)nfsm_fhtom(nmp, nd, VTONFS(tdvp)->n_fhp->nfh_fh,
3020 (void) nfsrv_putattrbit(nd, &attrbits);
3021 nd->nd_flag |= ND_V4WCCATTR;
3025 (void) nfsm_strtom(nd, fnameptr, fnamelen);
3026 if (!(nd->nd_flag & ND_NFSV4))
3027 (void)nfsm_fhtom(nmp, nd, VTONFS(tdvp)->n_fhp->nfh_fh,
3029 (void) nfsm_strtom(nd, tnameptr, tnamelen);
3030 error = nfscl_request(nd, fdvp, p, cred);
3033 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
3035 if (ret > 0 && nd->nd_repstat != 0 &&
3036 (nd->nd_flag & ND_NOMOREDATA)) {
3041 m_freem(nd->nd_mrep);
3045 if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) ==
3057 m_freem(nd->nd_mrep);
3060 nd->nd_flag |= ND_NOMOREDATA;
3066 if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) == ND_NFSV4) {
3069 nd->nd_flag |= ND_NOMOREDATA;
3071 error = nfscl_wcc_data(nd, fdvp, fnap, fattrflagp, NULL, NULL);
3073 if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) == ND_NFSV4 &&
3077 nd->nd_flag |= ND_NOMOREDATA;
3080 error = nfscl_wcc_data(nd, tdvp, tnap, tattrflagp,
3083 if (nd->nd_repstat && !error)
3084 error = nd->nd_repstat;
3086 m_freem(nd->nd_mrep);
3099 struct nfsrv_descript nfsd, *nd = &nfsd;
3107 NFSCL_REQSTART(nd, NFSPROC_LINK, vp, cred);
3108 if (nd->nd_flag & ND_NFSV4) {
3112 (void)nfsm_fhtom(VFSTONFS(dvp->v_mount), nd, VTONFS(dvp)->n_fhp->nfh_fh,
3114 if (nd->nd_flag & ND_NFSV4) {
3118 (void) nfsrv_putattrbit(nd, &attrbits);
3119 nd->nd_flag |= ND_V4WCCATTR;
3123 (void) nfsm_strtom(nd, name, namelen);
3124 error = nfscl_request(nd, vp, p, cred);
3127 if (nd->nd_flag & ND_NFSV3) {
3128 error = nfscl_postop_attr(nd, nap, attrflagp);
3130 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp,
3132 } else if ((nd->nd_flag & (ND_NFSV4 | ND_NOMOREDATA)) == ND_NFSV4) {
3140 nd->nd_flag |= ND_NOMOREDATA;
3144 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
3146 if (nd->nd_repstat && !error)
3147 error = nd->nd_repstat;
3149 m_freem(nd->nd_mrep);
3163 struct nfsrv_descript nfsd, *nd = &nfsd;
3174 NFSCL_REQSTART(nd, NFSPROC_SYMLINK, dvp, cred);
3175 if (nd->nd_flag & ND_NFSV4) {
3178 (void) nfsm_strtom(nd, target, slen);
3180 (void) nfsm_strtom(nd, name, namelen);
3181 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4))
3182 nfscl_fillsattr(nd, vap, dvp, 0, 0);
3183 if (!(nd->nd_flag & ND_NFSV4))
3184 (void) nfsm_strtom(nd, target, slen);
3185 if (nd->nd_flag & ND_NFSV2)
3186 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_SIZENEG1, 0);
3187 error = nfscl_request(nd, dvp, p, cred);
3190 if (nd->nd_flag & ND_NFSV4)
3191 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
3192 if ((nd->nd_flag & ND_NFSV3) && !error) {
3193 if (!nd->nd_repstat)
3194 error = nfscl_mtofh(nd, nfhpp, nnap, attrflagp);
3196 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp,
3199 if (nd->nd_repstat && !error)
3200 error = nd->nd_repstat;
3201 m_freem(nd->nd_mrep);
3224 struct nfsrv_descript nfsd, *nd = &nfsd;
3237 NFSCL_REQSTART(nd, NFSPROC_MKDIR, dvp, cred);
3238 if (nd->nd_flag & ND_NFSV4) {
3242 (void) nfsm_strtom(nd, name, namelen);
3243 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_SIZENEG1 | NFSSATTR_NEWFILE, 0);
3244 if (nd->nd_flag & ND_NFSV4) {
3249 (void) nfsrv_putattrbit(nd, &attrbits);
3252 (void)nfsm_fhtom(nmp, nd, fhp->nfh_fh, fhp->nfh_len, 0);
3255 (void) nfsrv_putattrbit(nd, &attrbits);
3257 error = nfscl_request(nd, dvp, p, cred);
3260 if (nd->nd_flag & ND_NFSV4)
3261 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
3262 if (!nd->nd_repstat && !error) {
3263 if (nd->nd_flag & ND_NFSV4) {
3265 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
3268 error = nfscl_mtofh(nd, nfhpp, nnap, attrflagp);
3269 if (error == 0 && (nd->nd_flag & ND_NFSV4) != 0) {
3273 error = nfsm_loadattr(nd, dnap);
3278 if ((nd->nd_flag & ND_NFSV3) && !error)
3279 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
3280 if (nd->nd_repstat && !error)
3281 error = nd->nd_repstat;
3283 m_freem(nd->nd_mrep);
3303 struct nfsrv_descript nfsd, *nd = &nfsd;
3309 NFSCL_REQSTART(nd, NFSPROC_RMDIR, dvp, cred);
3310 (void) nfsm_strtom(nd, name, namelen);
3311 error = nfscl_request(nd, dvp, p, cred);
3314 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4))
3315 error = nfscl_wcc_data(nd, dvp, dnap, dattrflagp, NULL, NULL);
3316 if (nd->nd_repstat && !error)
3317 error = nd->nd_repstat;
3318 m_freem(nd->nd_mrep);
3392 struct nfsrv_descript nfsd, *nd = &nfsd;
3424 nd->nd_mrep = NULL;
3454 NFSCL_REQSTART(nd, NFSPROC_LOOKUPP, vp, cred);
3458 (void) nfsrv_putattrbit(nd, &attrbits);
3459 error = nfscl_request(nd, vp, p, cred);
3463 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
3464 error = nfsm_loadattr(nd, &nfsva);
3469 if (nd->nd_repstat == 0) {
3473 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
3479 error = nfsv4_loadattr(nd, NULL, &nfsva, NULL,
3502 } else if (nd->nd_repstat == NFSERR_NOENT) {
3507 nd->nd_repstat = 0;
3510 error = nd->nd_repstat;
3512 m_freem(nd->nd_mrep);
3515 nd->nd_mrep = NULL;
3571 NFSCL_REQSTART(nd, NFSPROC_READDIR, vp, cred);
3572 if (nd->nd_flag & ND_NFSV2) {
3589 if (nd->nd_flag & ND_NFSV4) {
3592 (void) nfsrv_putattrbit(nd, &attrbits);
3595 (void) nfsrv_putattrbit(nd, &dattrbits);
3600 error = nfscl_request(nd, vp, p, cred);
3603 if (!(nd->nd_flag & ND_NFSV2)) {
3604 if (nd->nd_flag & ND_NFSV3)
3605 error = nfscl_postop_attr(nd, nap, attrflagp);
3606 if (!nd->nd_repstat && !error) {
3614 if (nd->nd_repstat || error) {
3616 error = nd->nd_repstat;
3627 if (nd->nd_flag & ND_NFSV4) {
3632 } else if (nd->nd_flag & ND_NFSV3) {
3692 error = nfsm_mbufuio(nd, uiop, len);
3697 (nd->nd_flag & ND_NFSV4) != 0, cp, len)) {
3722 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
3726 if (nd->nd_flag & ND_NFSV4) {
3729 error = nfsv4_loadattr(nd, NULL, &nfsva, NULL,
3735 } else if (nd->nd_flag & ND_NFSV3) {
3745 if (nd->nd_flag & ND_NFSV4) {
3786 if (nd->nd_flag & ND_NFSV4) {
3787 error = nfscl_postop_attr(nd, nap, attrflagp);
3792 m_freem(nd->nd_mrep);
3793 nd->nd_mrep = NULL;
3844 if (nd->nd_mrep != NULL)
3845 m_freem(nd->nd_mrep);
3863 struct nfsrv_descript nfsd, *nd = &nfsd;
3894 nd->nd_mrep = NULL;
3925 NFSCL_REQSTART(nd, NFSPROC_LOOKUPP, vp, cred);
3929 (void) nfsrv_putattrbit(nd, &attrbits);
3930 error = nfscl_request(nd, vp, p, cred);
3934 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
3935 error = nfsm_loadattr(nd, &nfsva);
3941 if (nd->nd_repstat == 0) {
3945 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
3951 error = nfsv4_loadattr(nd, NULL, &nfsva, NULL,
3974 } else if (nd->nd_repstat == NFSERR_NOENT) {
3979 nd->nd_repstat = 0;
3982 error = nd->nd_repstat;
3984 m_freem(nd->nd_mrep);
3987 nd->nd_mrep = NULL;
4047 NFSCL_REQSTART(nd, NFSPROC_READDIRPLUS, vp, cred);
4062 if (nd->nd_flag & ND_NFSV4) {
4063 (void) nfsrv_putattrbit(nd, &attrbits);
4066 (void) nfsrv_putattrbit(nd, &dattrbits);
4069 error = nfscl_request(nd, vp, p, cred);
4072 if (nd->nd_flag & ND_NFSV3)
4073 error = nfscl_postop_attr(nd, nap, attrflagp);
4074 if (nd->nd_repstat || error) {
4076 error = nd->nd_repstat;
4079 if ((nd->nd_flag & ND_NFSV3) != 0 && *attrflagp != 0)
4094 if (nd->nd_flag & ND_NFSV4) {
4154 error = nfsm_mbufuio(nd, uiop, len);
4159 (nd->nd_flag & ND_NFSV4) != 0, cp, len)) {
4190 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
4195 if (nd->nd_flag & ND_NFSV3) {
4201 error = nfsm_loadattr(nd, &nfsva);
4207 error = nfsm_getfh(nd, &nfhp);
4218 error = nfsv4_loadattr(nd, NULL, &nfsva, &nfhp,
4226 if (nd->nd_flag & ND_NFSV4) {
4353 if (nd->nd_flag & ND_NFSV4) {
4354 error = nfscl_postop_attr(nd, nap, attrflagp);
4359 m_freem(nd->nd_mrep);
4360 nd->nd_mrep = NULL;
4411 if (nd->nd_mrep != NULL)
4412 m_freem(nd->nd_mrep);
4424 struct nfsrv_descript nfsd, *nd = &nfsd;
4430 NFSCL_REQSTART(nd, NFSPROC_COMMIT, vp, cred);
4435 if (nd->nd_flag & ND_NFSV4) {
4442 (void) nfsrv_putattrbit(nd, &attrbits);
4444 error = nfscl_request(nd, vp, p, cred);
4447 error = nfscl_wcc_data(nd, vp, nap, attrflagp, NULL, NULL);
4448 if (!error && !nd->nd_repstat) {
4453 nd->nd_repstat = NFSERR_STALEWRITEVERF;
4456 if (nd->nd_flag & ND_NFSV4)
4457 error = nfscl_postop_attr(nd, nap, attrflagp);
4460 if (!error && nd->nd_repstat)
4461 error = nd->nd_repstat;
4462 m_freem(nd->nd_mrep);
4477 struct nfsrv_descript nfsd, *nd = &nfsd;
4519 nd->nd_repstat = 0;
4527 error = nfsrpc_lockt(nd, vp, clp, off, len, fl, cred,
4573 error = nfsrpc_locku(nd, nmp, lp, off, len,
4575 if ((nd->nd_repstat == NFSERR_GRACE ||
4576 nd->nd_repstat == NFSERR_DELAY) &&
4578 (void) nfs_catnap(PZERO, (int)nd->nd_repstat,
4580 } while ((nd->nd_repstat == NFSERR_GRACE ||
4581 nd->nd_repstat == NFSERR_DELAY) && error == 0);
4584 } while (error == 0 && nd->nd_repstat == 0);
4601 error = nfsrpc_lock(nd, nmp, vp, nfhp->nfh_fh,
4606 error = nd->nd_repstat;
4612 error = nd->nd_repstat;
4638 nfsrpc_lockt(struct nfsrv_descript *nd, vnode_t vp,
4650 NFSCL_REQSTART(nd, NFSPROC_LOCKT, vp, cred);
4667 (void)nfsm_strtom(nd, own, NFSV4CL_LOCKNAMELEN + np->n_fhp->nfh_len);
4668 error = nfscl_request(nd, vp, p, cred);
4671 if (nd->nd_repstat == 0) {
4673 } else if (nd->nd_repstat == NFSERR_DENIED) {
4674 nd->nd_repstat = 0;
4701 error = nfsm_advance(nd, NFSM_RNDUP(size), -1);
4702 } else if (nd->nd_repstat == NFSERR_STALECLIENTID)
4705 m_freem(nd->nd_mrep);
4713 nfsrpc_locku(struct nfsrv_descript *nd, struct nfsmount *nmp,
4720 nfscl_reqstart(nd, NFSPROC_LOCKU, nmp, lp->nfsl_open->nfso_fh,
4740 nd->nd_flag |= ND_USEGSSNAME;
4741 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
4743 NFSCL_INCRSEQID(lp->nfsl_seqid, nd);
4746 if (nd->nd_repstat == 0) {
4752 } else if (nd->nd_repstat == NFSERR_STALESTATEID)
4755 m_freem(nd->nd_mrep);
4763 nfsrpc_lock(struct nfsrv_descript *nd, struct nfsmount *nmp, vnode_t vp,
4773 nfscl_reqstart(nd, NFSPROC_LOCK, nmp, nfhp, fhlen, NULL, NULL, 0, 0,
4803 (void)nfsm_strtom(nd, own, NFSV4CL_LOCKNAMELEN + fhlen);
4820 nd->nd_flag |= ND_USEGSSNAME;
4821 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, vp, p, cred,
4826 NFSCL_INCRSEQID(lp->nfsl_open->nfso_own->nfsow_seqid, nd);
4827 NFSCL_INCRSEQID(lp->nfsl_seqid, nd);
4828 if (nd->nd_repstat == 0) {
4834 } else if (nd->nd_repstat == NFSERR_DENIED) {
4840 error = nfsm_advance(nd, NFSM_RNDUP(size), -1);
4841 } else if (nd->nd_repstat == NFSERR_STALESTATEID)
4844 m_freem(nd->nd_mrep);
4858 struct nfsrv_descript nfsd, *nd = &nfsd;
4869 NFSCL_REQSTART(nd, NFSPROC_GETATTR, vp, cred);
4874 (void) nfsrv_putattrbit(nd, &attrbits);
4875 nd->nd_flag |= ND_USEGSSNAME;
4876 error = nfscl_request(nd, vp, p, cred);
4879 if (nd->nd_repstat == 0) {
4880 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0,
4890 error = nd->nd_repstat;
4895 NFSCL_REQSTART(nd, NFSPROC_FSSTAT, vp, NULL);
4896 error = nfscl_request(nd, vp, p, cred);
4899 if (nd->nd_flag & ND_NFSV3) {
4900 error = nfscl_postop_attr(nd, nap, attrflagp);
4904 if (nd->nd_repstat) {
4905 error = nd->nd_repstat;
4909 NFSX_STATFS(nd->nd_flag & ND_NFSV3));
4927 m_freem(nd->nd_mrep);
4938 struct nfsrv_descript nfsd, *nd = &nfsd;
4962 NFSCL_REQSTART(nd, NFSPROC_GETATTR, vp, cred);
4964 (void) nfsrv_putattrbit(nd, &attrbits);
4965 nd->nd_flag |= ND_USEGSSNAME;
4966 error = nfscl_request(nd, vp, p, cred);
4969 if (nd->nd_repstat == 0) {
4970 error = nfsv4_loadattr(nd, NULL, nap, NULL, NULL, 0,
4976 error = nd->nd_repstat;
4979 NFSCL_REQSTART(nd, NFSPROC_PATHCONF, vp, NULL);
4980 error = nfscl_request(nd, vp, p, cred);
4983 error = nfscl_postop_attr(nd, nap, attrflagp);
4984 if (nd->nd_repstat && !error)
4985 error = nd->nd_repstat;
4999 m_freem(nd->nd_mrep);
5011 struct nfsrv_descript nfsd, *nd = &nfsd;
5015 NFSCL_REQSTART(nd, NFSPROC_FSINFO, vp, NULL);
5016 error = nfscl_request(nd, vp, p, cred);
5019 error = nfscl_postop_attr(nd, nap, attrflagp);
5020 if (nd->nd_repstat && !error)
5021 error = nd->nd_repstat;
5038 m_freem(nd->nd_mrep);
5051 struct nfsrv_descript *nd = &nfsd;
5061 nfscl_reqstart(nd, NFSPROC_RENEW, nmp, NULL, 0, NULL, NULL, 0,
5064 nfscl_reqstart(nd, NFSPROC_RENEW, nmp, NULL, 0, NULL,
5079 nd->nd_flag |= ND_USEGSSNAME;
5081 error = newnfs_request(nd, nmp, NULL, nrp, NULL, p, cred,
5084 error = newnfs_request(nd, nmp, NULL, nrp, NULL, p, cred,
5091 error = nd->nd_repstat;
5092 m_freem(nd->nd_mrep);
5103 struct nfsrv_descript nfsd, *nd = &nfsd;
5111 nfscl_reqstart(nd, NFSPROC_FREESTATEID, nmp, NULL, 0, NULL,
5113 nfsm_stateidtom(nd, &lp->nfsl_stateid, NFSSTATEID_PUTSTATEID);
5115 nfscl_reqstart(nd, NFSPROC_RELEASELCKOWN, nmp, NULL, 0, NULL,
5123 (void)nfsm_strtom(nd, own, NFSV4CL_LOCKNAMELEN + fhlen);
5125 nd->nd_flag |= ND_USEGSSNAME;
5126 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5130 error = nd->nd_repstat;
5131 m_freem(nd->nd_mrep);
5144 struct nfsrv_descript *nd = &nfsd;
5149 nfscl_reqstart(nd, NFSPROC_PUTROOTFH, nmp, NULL, 0, &opcntp, NULL, 0,
5167 nfsm_strtom(nd, cp, strlen(cp));
5181 nd->nd_flag |= ND_USEGSSNAME;
5182 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5186 if (nd->nd_repstat == 0) {
5191 nd->nd_repstat = NFSERR_BADXDR;
5194 nd->nd_repstat = nfsrv_mtostr(nd, fhp, len);
5195 if (nd->nd_repstat == 0) {
5206 error = nd->nd_repstat;
5208 m_freem(nd->nd_mrep);
5221 struct nfsrv_descript *nd = &nfsd;
5224 nfscl_reqstart(nd, NFSPROC_DELEGRETURN, nmp, dp->nfsdl_fh,
5235 nd->nd_flag |= ND_USEGSSNAME;
5236 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5240 error = nd->nd_repstat;
5241 m_freem(nd->nd_mrep);
5251 struct nfsrv_descript nfsd, *nd = &nfsd;
5258 NFSCL_REQSTART(nd, NFSPROC_GETACL, vp, cred);
5261 (void) nfsrv_putattrbit(nd, &attrbits);
5262 error = nfscl_request(nd, vp, p, cred);
5265 if (!nd->nd_repstat)
5266 error = nfsv4_loadattr(nd, vp, NULL, NULL, NULL, 0, NULL,
5269 error = nd->nd_repstat;
5270 m_freem(nd->nd_mrep);
5296 struct nfsrv_descript nfsd, *nd = &nfsd;
5303 NFSCL_REQSTART(nd, NFSPROC_SETACL, vp, cred);
5304 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
5307 (void) nfsv4_fillattr(nd, vp->v_mount, vp, aclp, NULL, NULL, 0,
5309 error = nfscl_request(nd, vp, p, cred);
5313 m_freem(nd->nd_mrep);
5314 return (nd->nd_repstat);
5327 struct nfsrv_descript *nd = &nfsd;
5335 nfscl_reqstart(nd, NFSPROC_EXCHANGEID, nmp, NULL, 0, NULL, NULL,
5340 (void) nfsm_strtom(nd, clp->nfsc_id, clp->nfsc_idlen);
5348 (void) nfsm_strtom(nd, "freebsd.org", strlen("freebsd.org"));
5349 (void) nfsm_strtom(nd, version, strlen(version));
5354 nd->nd_flag |= ND_USEGSSNAME;
5355 error = newnfs_request(nd, nmp, NULL, nrp, NULL, p, cred,
5358 (int)nd->nd_repstat);
5361 if (nd->nd_repstat == 0) {
5390 nd->nd_repstat = nfsrv_mtostr(nd,
5392 if (nd->nd_repstat == 0) {
5401 error = nd->nd_repstat;
5403 m_freem(nd->nd_mrep);
5417 struct nfsrv_descript *nd = &nfsd;
5431 nfscl_reqstart(nd, NFSPROC_CREATESESSION, nmp, NULL, 0, NULL, NULL,
5445 if ((nd->nd_flag & ND_NFSV42) != 0 && mds != 0 && sb_max_adj >=
5483 nd->nd_flag |= ND_USEGSSNAME;
5484 error = newnfs_request(nd, nmp, NULL, nrp, NULL, p, cred, NFS_PROG,
5488 if (nd->nd_repstat == 0) {
5543 error = nd->nd_repstat;
5545 m_freem(nd->nd_mrep);
5558 struct nfsrv_descript *nd = &nfsd;
5562 nfscl_reqstart(nd, NFSPROC_DESTROYCLIENT, nmp, NULL, 0, NULL, NULL, 0,
5568 nd->nd_flag |= ND_USEGSSNAME;
5569 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5573 error = nd->nd_repstat;
5574 m_freem(nd->nd_mrep);
5587 struct nfsrv_descript nfsd, *nd = &nfsd;
5590 nfscl_reqstart(nd, NFSPROC_LAYOUTGET, nmp, fhp, fhlen, NULL, NULL, 0,
5592 nfsrv_setuplayoutget(nd, iomode, offset, len, minlen, stateidp,
5594 nd->nd_flag |= ND_USEGSSNAME;
5595 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5597 NFSCL_DEBUG(4, "layget err=%d st=%d\n", error, nd->nd_repstat);
5600 if (nd->nd_repstat == 0)
5601 error = nfsrv_parselayoutget(nmp, nd, stateidp, retonclosep,
5603 if (error == 0 && nd->nd_repstat != 0)
5604 error = nd->nd_repstat;
5605 m_freem(nd->nd_mrep);
5619 struct nfsrv_descript *nd = &nfsd;
5634 nfscl_reqstart(nd, NFSPROC_GETDEVICEINFO, nmp, NULL, 0, NULL, NULL, 0,
5647 nd->nd_flag |= ND_USEGSSNAME;
5648 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5652 if (nd->nd_repstat == 0) {
5730 error = nfsv4_getipaddr(nd, &sin, &sin6, &af,
5834 if (nd->nd_repstat != 0 && error == 0)
5835 error = nd->nd_repstat;
5839 m_freem(nd->nd_mrep);
5852 struct nfsrv_descript nfsd, *nd = &nfsd;
5855 nfscl_reqstart(nd, NFSPROC_LAYOUTCOMMIT, nmp, fh, fhlen, NULL, NULL,
5882 nd->nd_flag |= ND_USEGSSNAME;
5883 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5887 error = nd->nd_repstat;
5888 m_freem(nd->nd_mrep);
5902 struct nfsrv_descript nfsd, *nd = &nfsd;
5906 nfscl_reqstart(nd, NFSPROC_LAYOUTRETURN, nmp, fh, fhlen, NULL, NULL,
5959 nd->nd_flag |= ND_USEGSSNAME;
5960 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
5964 if (nd->nd_repstat == 0) {
5974 error = nd->nd_repstat;
5976 m_freem(nd->nd_mrep);
5989 struct nfsrv_descript nfsd, *nd = &nfsd;
5992 nfscl_reqstart(nd, NFSPROC_LAYOUTERROR, nmp, fh, fhlen, NULL, NULL,
6007 nd->nd_flag |= ND_USEGSSNAME;
6008 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
6012 if (nd->nd_repstat != 0)
6013 error = nd->nd_repstat;
6014 m_freem(nd->nd_mrep);
6338 struct nfsrv_descript *nd = &nfsd;
6341 nfscl_reqstart(nd, NFSPROC_RECLAIMCOMPL, nmp, NULL, 0, NULL, NULL, 0,
6345 nd->nd_flag |= ND_USEGSSNAME;
6346 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
6350 error = nd->nd_repstat;
6351 m_freem(nd->nd_mrep);
6963 struct nfsrv_descript *nd = &nfsd;
6967 nd->nd_mrep = NULL;
6969 nfscl_reqstart(nd, NFSPROC_READDS, nmp, fhp->nfh_fh,
6975 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
6977 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSEQIDZERO);
6979 nfscl_reqstart(nd, NFSPROC_READ, nmp, fhp->nfh_fh,
6994 error = newnfs_request(nd, nmp, NULL, nrp, vp, p, cred,
6996 NFSCL_DEBUG(4, "nfsrpc_readds: stat=%d err=%d\n", nd->nd_repstat,
7001 error = nfscl_postop_attr(nd, &na, &attrflag);
7006 if (nd->nd_repstat != 0) {
7007 error = nd->nd_repstat;
7019 error = nfsm_mbufuio(nd, uiop, retlen);
7021 if (nd->nd_mrep != NULL)
7022 m_freem(nd->nd_mrep);
7040 struct nfsrv_descript *nd = &nfsd;
7045 nd->nd_mrep = NULL;
7047 nfscl_reqstart(nd, NFSPROC_WRITEDS, nmp, fhp->nfh_fh,
7053 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
7055 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSEQIDZERO);
7058 nfscl_reqstart(nd, NFSPROC_WRITE, nmp, fhp->nfh_fh,
7072 error = nfsm_uiombuf(nd, uiop, len);
7074 m_freem(nd->nd_mreq);
7081 error = newnfs_request(nd, nmp, NULL, nrp, vp, p, cred,
7084 nd->nd_repstat);
7087 if (nd->nd_repstat != 0) {
7097 error = nd->nd_repstat;
7100 error = nfscl_wcc_data(nd, vp, &na, &attrflag, NULL,
7157 if (nd->nd_mrep != NULL)
7158 m_freem(nd->nd_mrep);
7160 if (nd->nd_repstat != 0 && error == 0)
7161 error = nd->nd_repstat;
7180 struct nfsrv_descript *nd = &nfsd;
7184 nd->nd_mrep = NULL;
7186 nfscl_reqstart(nd, NFSPROC_WRITEDS, nmp, fhp->nfh_fh,
7192 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
7195 nfscl_reqstart(nd, NFSPROC_WRITE, nmp, fhp->nfh_fh,
7211 nd->nd_mb->m_next = m;
7217 error = newnfs_request(nd, nmp, NULL, nrp, vp, p, cred,
7220 nd->nd_repstat);
7223 if (nd->nd_repstat != 0)
7224 error = nd->nd_repstat;
7227 error = nfscl_wcc_data(nd, vp, &na, &attrflag, NULL,
7267 if (nd->nd_mrep != NULL)
7268 m_freem(nd->nd_mrep);
7270 if (nd->nd_repstat != 0 && error == 0)
7271 error = nd->nd_repstat;
7408 struct nfsrv_descript nfsd, *nd = &nfsd;
7414 nd->nd_mrep = NULL;
7416 nfscl_reqstart(nd, NFSPROC_COMMITDS, nmp, fhp->nfh_fh,
7421 nfscl_reqstart(nd, NFSPROC_COMMIT, nmp, fhp->nfh_fh,
7437 error = newnfs_request(nd, nmp, NULL, nrp, vp, p, cred,
7440 nd->nd_repstat);
7443 if (nd->nd_repstat == 0) {
7445 error = nfscl_wcc_data(nd, vp, &na, &attrflag, NULL,
7460 if (error == 0 && nd->nd_repstat != 0)
7461 error = nd->nd_repstat;
7462 m_freem(nd->nd_mrep);
7527 struct nfsrv_descript nfsd, *nd = &nfsd;
7538 NFSCL_REQSTART(nd, NFSPROC_IOADVISE, vp, cred);
7539 nfsm_stateidtom(nd, NULL, NFSSTATEID_PUTALLZERO);
7544 nfsrv_putattrbit(nd, &hints);
7545 error = nfscl_request(nd, vp, p, cred);
7548 if (nd->nd_repstat != 0)
7549 error = nd->nd_repstat;
7550 m_freem(nd->nd_mrep);
7564 struct nfsrv_descript nfsd, *nd = &nfsd;
7580 nd->nd_mrep = NULL;
7581 nfscl_reqstart(nd, NFSPROC_IOADVISEDS, nmp, fhp->nfh_fh,
7586 nfsm_stateidtom(nd, NULL, NFSSTATEID_PUTALLZERO);
7591 nfsrv_putattrbit(nd, &hints);
7596 error = newnfs_request(nd, nmp, NULL, nrp, vp, p, cred,
7599 nd->nd_repstat);
7602 if (nd->nd_repstat != 0)
7603 error = nd->nd_repstat;
7604 m_freem(nd->nd_mrep);
7749 struct nfsrv_descript *nd = &nfsd;
7753 NFSCL_REQSTART(nd, NFSPROC_ALLOCATE, vp, cred);
7754 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
7760 nfsrv_putattrbit(nd, &attrbits);
7761 error = nfscl_request(nd, vp, p, cred);
7764 if (nd->nd_repstat == 0) {
7766 error = nfsm_loadattr(nd, nap);
7770 error = nd->nd_repstat;
7772 m_freem(nd->nd_mrep);
7780 nfsrv_setuplayoutget(struct nfsrv_descript *nd, int iomode, uint64_t offset,
7817 nfsrv_parselayoutget(struct nfsmount *nmp, struct nfsrv_descript *nd,
8027 error = nfsrv_parseug(nd, 0, &user,
8032 error = nfsrv_parseug(nd, 1,
8102 nfsrv_parseug(struct nfsrv_descript *nd, int dogrp, uid_t *uidp, gid_t *gidp,
8134 error = nfsv4_strtogid(nd, str, len, gidp);
8136 error = nfsv4_strtouid(nd, str, len, uidp);
8230 struct nfsrv_descript nfsd, *nd = &nfsd;
8240 nfscl_reqstart(nd, NFSPROC_OPENLAYGET, nmp, nfhp, fhlen, NULL, NULL,
8250 nfsm_strtom(nd, op->nfso_own->nfsow_owner, NFSV4CL_LOCKNAMELEN);
8257 nfsm_strtom(nd, name, namelen);
8264 nfsrv_putattrbit(nd, &attrbits);
8271 nfsrv_setuplayoutget(nd, iomode, 0, UINT64_MAX, 0, stateidp,
8273 error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, vp, p, cred,
8277 NFSCL_INCRSEQID(op->nfso_own->nfsow_seqid, nd);
8278 if (nd->nd_repstat != 0)
8279 *laystatp = nd->nd_repstat;
8280 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
8289 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
8342 error = nfsrv_dissectace(nd, &ndp->nfsdl_ace, false,
8363 /* If the 2nd element == NFS_OK, the Getattr succeeded. */
8365 error = nfsv4_loadattr(nd, NULL, &nfsva, NULL,
8382 if (nd->nd_repstat == 0) {
8386 error = nfsrv_parselayoutget(nmp, nd,
8392 nd->nd_repstat = 0; /* Return 0 for Open. */
8395 if (nd->nd_repstat != 0 && error == 0)
8396 error = nd->nd_repstat;
8399 m_freem(nd->nd_mrep);
8418 struct nfsrv_descript nfsd, *nd = &nfsd;
8438 NFSCL_REQSTART(nd, NFSPROC_CREATELAYGET, dvp, cred);
8459 nfsm_strtom(nd, owp->nfsow_owner, NFSV4CL_LOCKNAMELEN);
8466 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_NEWFILE, 0);
8473 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_NEWFILE, 0);
8477 nfscl_fillsattr(nd, vap, dvp, NFSSATTR_NEWFILE, 0);
8481 nfsm_strtom(nd, name, namelen);
8488 nfsrv_putattrbit(nd, &attrbits);
8492 (void)nfsm_fhtom(nmp, nd, np->n_fhp->nfh_fh, np->n_fhp->nfh_len, 0);
8495 nfsrv_putattrbit(nd, &attrbits);
8499 nfsrv_setuplayoutget(nd, NFSLAYOUTIOMODE_RW, 0, UINT64_MAX, 0, stateidp,
8501 error = nfscl_request(nd, dvp, p, cred);
8504 NFSCL_DEBUG(4, "nfsrpc_createlayout stat=%d err=%d\n", nd->nd_repstat,
8506 if (nd->nd_repstat != 0)
8507 *laystatp = nd->nd_repstat;
8508 NFSCL_INCRSEQID(owp->nfsow_seqid, nd);
8509 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
8517 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
8569 error = nfsrv_dissectace(nd, &dp->nfsdl_ace, false,
8587 error = nfscl_mtofh(nd, nfhpp, nnap, attrflagp);
8592 nd->nd_flag |= ND_NOMOREDATA;
8594 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
8597 nd->nd_flag |= ND_NOMOREDATA;
8602 nd->nd_flag |= ND_NOMOREDATA;
8605 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
8607 error = nfsm_loadattr(nd, dnap);
8642 if (nd->nd_repstat == 0) {
8646 error = nfsrv_parselayoutget(nmp, nd,
8654 nd->nd_repstat = 0;
8657 if (nd->nd_repstat != 0 && error == 0)
8658 error = nd->nd_repstat;
8667 m_freem(nd->nd_mrep);
8878 struct nfsrv_descript *nd = &nfsd;
8891 nfscl_reqstart(nd, NFSPROC_COPY, nmp, VTONFS(invp)->n_fhp->nfh_fh,
8904 nfsm_stateidtom(nd, instateidp, NFSSTATEID_PUTSTATEID);
8908 nfscl_fillsattr(nd, &va, invp, 0, 0);
8917 nfsrv_putattrbit(nd, &attrbits);
8922 (void)nfsm_fhtom(nmp, nd, VTONFS(outvp)->n_fhp->nfh_fh,
8928 nfsm_stateidtom(nd, instateidp, NFSSTATEID_PUTSTATEID);
8929 nfsm_stateidtom(nd, outstateidp, NFSSTATEID_PUTSTATEID);
8944 nfsrv_putattrbit(nd, &attrbits);
8946 error = nfscl_request(nd, invp, p, cred);
8950 if ((nd->nd_flag & ND_NOMOREDATA) == 0 &&
8954 error = nfsrv_getattrbits(nd, &attrbits, NULL, NULL);
8958 nd->nd_flag |= ND_NOMOREDATA;
8960 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
8964 error = nfsm_loadattr(nd, innap);
8969 nd->nd_flag |= ND_NOMOREDATA;
8972 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
8975 nd->nd_flag |= ND_NOMOREDATA;
8978 if ((nd->nd_flag & ND_NOMOREDATA) == 0)
8980 if (nd->nd_repstat == 0) {
8997 nd->nd_repstat = NFSERR_STALEWRITEVERF;
9001 if (nd->nd_repstat == 0 && *++tl != newnfs_true)
9003 nd->nd_repstat = NFSERR_NOTSUPP;
9005 error = nfsm_loadattr(nd, outnap);
9008 if (nd->nd_repstat == 0)
9010 } else if (nd->nd_repstat == NFSERR_OFFLOADNOREQS) {
9017 if ((nd->nd_flag & ND_NOMOREDATA) == 0) {
9020 nd->nd_repstat = NFSERR_NOTSUPP;
9022 nd->nd_repstat = NFSERR_BADXDR;
9025 error = nd->nd_repstat;
9027 m_freem(nd->nd_mrep);
9094 struct nfsrv_descript *nd = &nfsd;
9098 NFSCL_REQSTART(nd, NFSPROC_SEEK, vp, cred);
9099 nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSTATEID);
9105 nfsrv_putattrbit(nd, &attrbits);
9106 error = nfscl_request(nd, vp, curthread, cred);
9109 if (nd->nd_repstat == 0) {
9117 error = nfsm_loadattr(nd, nap);
9121 error = nd->nd_repstat;
9123 m_freem(nd->nd_mrep);
9137 struct nfsrv_descript *nd = &nfsd;
9142 NFSCL_REQSTART(nd, NFSPROC_GETEXTATTR, vp, cred);
9143 nfsm_strtom(nd, name, strlen(name));
9147 nfsrv_putattrbit(nd, &attrbits);
9148 error = nfscl_request(nd, vp, p, cred);
9151 if (nd->nd_repstat == 0) {
9159 error = nfsm_mbufuio(nd, uiop, len);
9161 error = nfsm_mbufuio(nd, uiop, len2);
9173 error = nfsm_advance(nd, len2,
9179 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
9187 error = nfsm_loadattr(nd, nap);
9192 error = nd->nd_repstat;
9194 m_freem(nd->nd_mrep);
9208 struct nfsrv_descript *nd = &nfsd;
9212 NFSCL_REQSTART(nd, NFSPROC_SETEXTATTR, vp, cred);
9213 if (uiop->uio_resid > nd->nd_maxreq) {
9215 m_freem(nd->nd_mreq);
9220 nfsm_strtom(nd, name, strlen(name));
9223 error = nfsm_uiombuf(nd, uiop, uiop->uio_resid);
9225 m_freem(nd->nd_mreq);
9231 nfsrv_putattrbit(nd, &attrbits);
9232 error = nfscl_request(nd, vp, p, cred);
9235 if (nd->nd_repstat == 0) {
9239 error = nfsm_loadattr(nd, nap);
9244 error = nd->nd_repstat;
9246 m_freem(nd->nd_mrep);
9260 struct nfsrv_descript *nd = &nfsd;
9264 NFSCL_REQSTART(nd, NFSPROC_RMEXTATTR, vp, cred);
9265 nfsm_strtom(nd, name, strlen(name));
9269 nfsrv_putattrbit(nd, &attrbits);
9270 error = nfscl_request(nd, vp, p, cred);
9273 if (nd->nd_repstat == 0) {
9277 error = nfsm_loadattr(nd, nap);
9282 error = nd->nd_repstat;
9284 m_freem(nd->nd_mrep);
9299 struct nfsrv_descript *nd = &nfsd;
9304 NFSCL_REQSTART(nd, NFSPROC_LISTEXTATTR, vp, cred);
9310 nfsrv_putattrbit(nd, &attrbits);
9311 error = nfscl_request(nd, vp, p, cred);
9316 if (nd->nd_repstat == 0) {
9332 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
9337 error = nfsm_mbufuio(nd, uiop, len);
9339 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
9354 error = nfsm_loadattr(nd, nap);
9359 error = nd->nd_repstat;
9361 m_freem(nd->nd_mrep);
9471 struct nfsrv_descript *nd = &nfsd;
9477 nfscl_reqstart(nd, NFSPROC_BINDCONNTOSESS, NULL, NULL, 0, NULL, NULL,
9489 nd->nd_mrep = NULL;
9490 stat = CLNT_CALL_MBUF(cl, &ext, NFSV4PROC_COMPOUND, nd->nd_mreq,
9491 &nd->nd_mrep, utimeout);
9497 if (nd->nd_mrep == NULL) {
9502 newnfs_realign(&nd->nd_mrep, M_WAITOK);
9503 nd->nd_md = nd->nd_mrep;
9504 nd->nd_dpos = mtod(nd->nd_md, char *);
9506 nd->nd_repstat = fxdr_unsigned(uint32_t, *tl++);
9507 if (nd->nd_repstat == NFSERR_OK) {
9509 if (res > 0 && (error = nfsm_advance(nd, NFSM_RNDUP(res),
9524 } else if (nd->nd_repstat != NFSERR_BADSESSION)
9525 printf("nfsrpc_bindconnsess: returned %d\n", nd->nd_repstat);
9529 m_freem(nd->nd_mrep);