Lines Matching refs:ndp

644 nfsvno_namei(struct nfsrv_descript *nd, struct nameidata *ndp,  in nfsvno_namei()  argument
648 struct componentname *cnp = &ndp->ni_cnd; in nfsvno_namei()
658 ndp->ni_lcf = 0; in nfsvno_namei()
667 nfsvno_relpathbuf(ndp); in nfsvno_namei()
677 ndp->ni_segflg = UIO_SYSSPACE; in nfsvno_namei()
680 ndp->ni_loopcnt = 0; in nfsvno_namei()
687 for (i = 1; i < ndp->ni_pathlen; i++) in nfsvno_namei()
690 if (i == ndp->ni_pathlen) { in nfsvno_namei()
712 ndp->ni_startdir = dp; in nfsvno_namei()
713 ndp->ni_rootdir = rootvnode; in nfsvno_namei()
714 ndp->ni_topdir = NULL; in nfsvno_namei()
727 error = vfs_lookup(ndp); in nfsvno_namei()
736 if (ndp->ni_vp && !lockleaf) in nfsvno_namei()
737 NFSVOPUNLOCK(ndp->ni_vp); in nfsvno_namei()
744 if ((cnp->cn_flags & LOCKPARENT) && ndp->ni_pathlen == 1) in nfsvno_namei()
745 NFSVOPUNLOCK(ndp->ni_dvp); in nfsvno_namei()
751 if (ndp->ni_loopcnt++ >= MAXSYMLINKS) { in nfsvno_namei()
755 if (ndp->ni_pathlen > 1) in nfsvno_namei()
768 error = VOP_READLINK(ndp->ni_vp, &auio, cnp->cn_cred); in nfsvno_namei()
771 if (ndp->ni_pathlen > 1) in nfsvno_namei()
774 vrele(ndp->ni_dvp); in nfsvno_namei()
775 vput(ndp->ni_vp); in nfsvno_namei()
783 if (linklen + ndp->ni_pathlen >= MAXPATHLEN) { in nfsvno_namei()
791 if (ndp->ni_pathlen > 1) { in nfsvno_namei()
792 NFSBCOPY(ndp->ni_next, cp + linklen, ndp->ni_pathlen); in nfsvno_namei()
797 ndp->ni_pathlen += linklen; in nfsvno_namei()
806 vput(ndp->ni_vp); in nfsvno_namei()
807 ndp->ni_vp = NULL; in nfsvno_namei()
810 vrele(ndp->ni_dvp); in nfsvno_namei()
811 ndp->ni_dvp = ndp->ni_rootdir; in nfsvno_namei()
812 VREF(ndp->ni_dvp); in nfsvno_namei()
814 ndp->ni_startdir = ndp->ni_dvp; in nfsvno_namei()
815 ndp->ni_dvp = NULL; in nfsvno_namei()
822 nfsvno_relpathbuf(ndp); in nfsvno_namei()
823 ndp->ni_vp = NULL; in nfsvno_namei()
824 ndp->ni_dvp = NULL; in nfsvno_namei()
825 ndp->ni_startdir = NULL; in nfsvno_namei()
826 } else if ((ndp->ni_cnd.cn_flags & (WANTPARENT|LOCKPARENT)) == 0) { in nfsvno_namei()
827 ndp->ni_dvp = NULL; in nfsvno_namei()
840 nfsvno_setpathbuf(struct nameidata *ndp, char **bufpp, u_long **hashpp) in nfsvno_setpathbuf() argument
842 struct componentname *cnp = &ndp->ni_cnd; in nfsvno_setpathbuf()
855 nfsvno_relpathbuf(struct nameidata *ndp) in nfsvno_relpathbuf() argument
858 uma_zfree(namei_zone, ndp->ni_cnd.cn_pnbuf); in nfsvno_relpathbuf()
859 ndp->ni_cnd.cn_pnbuf = NULL; in nfsvno_relpathbuf()
1210 nfsvno_createsub(struct nfsrv_descript *nd, struct nameidata *ndp, in nfsvno_createsub() argument
1219 if (!error && ndp->ni_vp == NULL) { in nfsvno_createsub()
1221 error = VOP_CREATE(ndp->ni_dvp, in nfsvno_createsub()
1222 &ndp->ni_vp, &ndp->ni_cnd, &nvap->na_vattr); in nfsvno_createsub()
1230 nfsrv_pnfscreate(ndp->ni_vp, &nvap->na_vattr, in nfsvno_createsub()
1233 VOP_VPUT_PAIR(ndp->ni_dvp, error == 0 ? &ndp->ni_vp : in nfsvno_createsub()
1235 nfsvno_relpathbuf(ndp); in nfsvno_createsub()
1242 error = VOP_SETATTR(ndp->ni_vp, in nfsvno_createsub()
1245 vput(ndp->ni_vp); in nfsvno_createsub()
1246 ndp->ni_vp = NULL; in nfsvno_createsub()
1261 nfsvno_relpathbuf(ndp); in nfsvno_createsub()
1262 vput(ndp->ni_dvp); in nfsvno_createsub()
1266 error = VOP_MKNOD(ndp->ni_dvp, &ndp->ni_vp, in nfsvno_createsub()
1267 &ndp->ni_cnd, &nvap->na_vattr); in nfsvno_createsub()
1268 VOP_VPUT_PAIR(ndp->ni_dvp, error == 0 ? &ndp->ni_vp : in nfsvno_createsub()
1270 nfsvno_relpathbuf(ndp); in nfsvno_createsub()
1274 nfsvno_relpathbuf(ndp); in nfsvno_createsub()
1275 vput(ndp->ni_dvp); in nfsvno_createsub()
1279 *vpp = ndp->ni_vp; in nfsvno_createsub()
1287 nfsvno_relpathbuf(ndp); in nfsvno_createsub()
1288 *vpp = ndp->ni_vp; in nfsvno_createsub()
1289 if (ndp->ni_dvp == *vpp) in nfsvno_createsub()
1290 vrele(ndp->ni_dvp); in nfsvno_createsub()
1292 vput(ndp->ni_dvp); in nfsvno_createsub()
1318 nfsvno_mknod(struct nameidata *ndp, struct nfsvattr *nvap, struct ucred *cred, in nfsvno_mknod() argument
1328 if (ndp->ni_vp) { in nfsvno_mknod()
1329 nfsvno_relpathbuf(ndp); in nfsvno_mknod()
1330 vput(ndp->ni_dvp); in nfsvno_mknod()
1331 vrele(ndp->ni_vp); in nfsvno_mknod()
1336 nfsvno_relpathbuf(ndp); in nfsvno_mknod()
1337 vput(ndp->ni_dvp); in nfsvno_mknod()
1342 error = VOP_CREATE(ndp->ni_dvp, &ndp->ni_vp, in nfsvno_mknod()
1343 &ndp->ni_cnd, &nvap->na_vattr); in nfsvno_mknod()
1344 VOP_VPUT_PAIR(ndp->ni_dvp, error == 0 ? &ndp->ni_vp : NULL, in nfsvno_mknod()
1346 nfsvno_relpathbuf(ndp); in nfsvno_mknod()
1350 nfsvno_relpathbuf(ndp); in nfsvno_mknod()
1351 vput(ndp->ni_dvp); in nfsvno_mknod()
1354 error = VOP_MKNOD(ndp->ni_dvp, &ndp->ni_vp, in nfsvno_mknod()
1355 &ndp->ni_cnd, &nvap->na_vattr); in nfsvno_mknod()
1356 VOP_VPUT_PAIR(ndp->ni_dvp, error == 0 ? &ndp->ni_vp : NULL, in nfsvno_mknod()
1358 nfsvno_relpathbuf(ndp); in nfsvno_mknod()
1374 nfsvno_mkdir(struct nameidata *ndp, struct nfsvattr *nvap, uid_t saved_uid, in nfsvno_mkdir() argument
1379 if (ndp->ni_vp != NULL) { in nfsvno_mkdir()
1380 if (ndp->ni_dvp == ndp->ni_vp) in nfsvno_mkdir()
1381 vrele(ndp->ni_dvp); in nfsvno_mkdir()
1383 vput(ndp->ni_dvp); in nfsvno_mkdir()
1384 vrele(ndp->ni_vp); in nfsvno_mkdir()
1385 nfsvno_relpathbuf(ndp); in nfsvno_mkdir()
1389 error = VOP_MKDIR(ndp->ni_dvp, &ndp->ni_vp, &ndp->ni_cnd, in nfsvno_mkdir()
1391 VOP_VPUT_PAIR(ndp->ni_dvp, error == 0 ? &ndp->ni_vp : NULL, false); in nfsvno_mkdir()
1392 nfsvno_relpathbuf(ndp); in nfsvno_mkdir()
1403 nfsvno_symlink(struct nameidata *ndp, struct nfsvattr *nvap, char *pathcp, in nfsvno_symlink() argument
1409 if (ndp->ni_vp) { in nfsvno_symlink()
1410 nfsvno_relpathbuf(ndp); in nfsvno_symlink()
1411 if (ndp->ni_dvp == ndp->ni_vp) in nfsvno_symlink()
1412 vrele(ndp->ni_dvp); in nfsvno_symlink()
1414 vput(ndp->ni_dvp); in nfsvno_symlink()
1415 vrele(ndp->ni_vp); in nfsvno_symlink()
1420 error = VOP_SYMLINK(ndp->ni_dvp, &ndp->ni_vp, &ndp->ni_cnd, in nfsvno_symlink()
1428 VOP_VPUT_PAIR(ndp->ni_dvp, &ndp->ni_vp, !not_v2 && error == 0); in nfsvno_symlink()
1429 nfsvno_relpathbuf(ndp); in nfsvno_symlink()
1486 nfsvno_removesub(struct nameidata *ndp, int is_v4, struct ucred *cred, in nfsvno_removesub() argument
1494 vp = ndp->ni_vp; in nfsvno_removesub()
1504 error = VOP_REMOVE(ndp->ni_dvp, vp, &ndp->ni_cnd); in nfsvno_removesub()
1507 if (ndp->ni_dvp == vp) in nfsvno_removesub()
1508 vrele(ndp->ni_dvp); in nfsvno_removesub()
1510 vput(ndp->ni_dvp); in nfsvno_removesub()
1512 nfsvno_relpathbuf(ndp); in nfsvno_removesub()
1521 nfsvno_rmdirsub(struct nameidata *ndp, int is_v4, struct ucred *cred, in nfsvno_rmdirsub() argument
1527 vp = ndp->ni_vp; in nfsvno_rmdirsub()
1535 if (ndp->ni_dvp == vp) { in nfsvno_rmdirsub()
1546 error = VOP_RMDIR(ndp->ni_dvp, vp, &ndp->ni_cnd); in nfsvno_rmdirsub()
1547 if (ndp->ni_dvp == vp) in nfsvno_rmdirsub()
1548 vrele(ndp->ni_dvp); in nfsvno_rmdirsub()
1550 vput(ndp->ni_dvp); in nfsvno_rmdirsub()
1552 nfsvno_relpathbuf(ndp); in nfsvno_rmdirsub()
1690 nfsvno_link(struct nameidata *ndp, struct vnode *vp, nfsquad_t clientid, in nfsvno_link() argument
1696 xp = ndp->ni_vp; in nfsvno_link()
1700 xp = ndp->ni_dvp; in nfsvno_link()
1709 error = VOP_LINK(ndp->ni_dvp, vp, &ndp->ni_cnd); in nfsvno_link()
1712 if (ndp->ni_dvp == vp) { in nfsvno_link()
1713 vrele(ndp->ni_dvp); in nfsvno_link()
1717 VOP_VPUT_PAIR(ndp->ni_dvp, &vp, true); in nfsvno_link()
1720 if (ndp->ni_dvp == ndp->ni_vp) in nfsvno_link()
1721 vrele(ndp->ni_dvp); in nfsvno_link()
1723 vput(ndp->ni_dvp); in nfsvno_link()
1724 if (ndp->ni_vp) in nfsvno_link()
1725 vrele(ndp->ni_vp); in nfsvno_link()
1727 nfsvno_relpathbuf(ndp); in nfsvno_link()
1879 nfsvno_open(struct nfsrv_descript *nd, struct nameidata *ndp, in nfsvno_open() argument
1891 if (ndp->ni_vp == NULL) { in nfsvno_open()
1903 if (ndp->ni_vp == NULL) { in nfsvno_open()
1904 nd->nd_repstat = VOP_CREATE(ndp->ni_dvp, in nfsvno_open()
1905 &ndp->ni_vp, &ndp->ni_cnd, &nvap->na_vattr); in nfsvno_open()
1913 nfsrv_pnfscreate(ndp->ni_vp, &nvap->na_vattr, in nfsvno_open()
1916 VOP_VPUT_PAIR(ndp->ni_dvp, nd->nd_repstat == 0 ? in nfsvno_open()
1917 &ndp->ni_vp : NULL, false); in nfsvno_open()
1918 nfsvno_relpathbuf(ndp); in nfsvno_open()
1925 nd->nd_repstat = VOP_SETATTR(ndp->ni_vp, in nfsvno_open()
1928 vput(ndp->ni_vp); in nfsvno_open()
1929 ndp->ni_vp = NULL; in nfsvno_open()
1935 nfsrv_fixattr(nd, ndp->ni_vp, nvap, in nfsvno_open()
1939 vp = ndp->ni_vp; in nfsvno_open()
1941 nfsvno_relpathbuf(ndp); in nfsvno_open()
1942 vp = ndp->ni_vp; in nfsvno_open()
1944 if (ndp->ni_dvp == vp) in nfsvno_open()
1945 vrele(ndp->ni_dvp); in nfsvno_open()
1947 vput(ndp->ni_dvp); in nfsvno_open()
1950 if (ndp->ni_cnd.cn_flags & RDONLY) in nfsvno_open()
1981 nfsvno_relpathbuf(ndp); in nfsvno_open()
1982 if (ndp->ni_dvp == ndp->ni_vp) in nfsvno_open()
1983 vrele(ndp->ni_dvp); in nfsvno_open()
1985 vput(ndp->ni_dvp); in nfsvno_open()
1986 if (ndp->ni_vp) in nfsvno_open()
1987 vput(ndp->ni_vp); in nfsvno_open()