Lines Matching refs:dvp
228 nfs_cache_enter(struct vnode *dvp, struct vnode *vp,
231 struct nfsnode *dnp = VTONFS(dvp);
245 cache_enter(dvp, vp, cnp->cn_nameptr, cnp->cn_namelen, cnp->cn_flags);
733 struct vnode *dvp = ap->a_dvp;
747 const int v3 = NFS_ISV3(dvp);
753 if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) &&
756 if (dvp->v_type != VDIR)
763 error = VOP_ACCESS(dvp, VEXEC, cnp->cn_cred);
768 vref(dvp);
769 *vpp = dvp;
773 np = VTONFS(dvp);
783 cachefound = cache_lookup_raw(dvp, cnp->cn_nameptr, cnp->cn_namelen,
785 KASSERT(dvp != *vpp);
790 error = VOP_ACCESS(dvp, VEXEC, cnp->cn_cred);
798 if (VOP_GETATTR(dvp, &vattr, cnp->cn_cred)
800 &VTONFS(dvp)->n_nctime, !=)) {
805 cache_purge1(dvp, NULL, 0, PURGE_CHILDREN);
822 VOP_UNLOCK(dvp);
826 vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
857 (dvp->v_mount->mnt_flag & MNT_RDONLY) == 0) {
873 nfsm_postop_attr(dvp, attrflag, 0);
887 error = nfs_nget(dvp->v_mount, fhp, fhsize, &np);
896 nfsm_postop_attr(dvp, attrflag, 0);
907 * because it should be done while dvp is locked (unlocking
908 * dvp is different for each case).
922 VOP_UNLOCK(dvp);
923 error = nfs_nget(dvp->v_mount, fhp, fhsize, &np);
924 vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
934 nfsm_postop_attr(dvp, attrflag, 0);
942 error = nfs_nget(dvp->v_mount, fhp, fhsize, &np);
951 nfsm_postop_attr(dvp, attrflag, 0);
957 nfs_cache_enter(dvp, newvp, cnp);
969 nfs_cache_enter(dvp, NULL, cnp);
972 if (newvp == dvp) {
981 if (dvp->v_mount->mnt_flag & MNT_RDONLY) {
1009 if (newvp != dvp)
1440 nfs_mknodrpc(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, struct vattr *vap)
1453 const int v3 = NFS_ISV3(dvp);
1460 VOP_ABORTOP(dvp, cnp);
1464 dnp = VTONFS(dvp);
1492 nfsm_mtofh(dvp, newvp, v3, gotvp);
1494 error = nfs_lookitup(dvp, cnp->cn_nameptr,
1502 nfsm_wcc_data(dvp, wccflag, 0, !error);
1509 nfs_cache_enter(dvp, newvp, cnp);
1513 VTONFS(dvp)->n_flag |= NMODIFIED;
1515 NFS_INVALIDATE_ATTRCACHE(VTONFS(dvp));
1533 struct vnode *dvp = ap->a_dvp;
1537 error = nfs_mknodrpc(dvp, ap->a_vpp, cnp, ap->a_vap);
1539 cache_purge1(dvp, cnp->cn_nameptr, cnp->cn_namelen, 0);
1555 struct vnode *dvp = ap->a_dvp;
1567 const int v3 = NFS_ISV3(dvp);
1574 return (nfs_mknodrpc(dvp, ap->a_vpp, cnp, vap));
1586 dnp = VTONFS(dvp);
1616 nfsm_mtofh(dvp, newvp, v3, gotvp);
1618 error = nfs_lookitup(dvp, cnp->cn_nameptr,
1626 nfsm_wcc_data(dvp, wccflag, 0, !error);
1664 nfs_cache_enter(dvp, newvp, cnp);
1666 cache_purge1(dvp, cnp->cn_nameptr, cnp->cn_namelen, 0);
1673 cache_purge1(dvp, cnp->cn_nameptr, cnp->cn_namelen, 0);
1675 VTONFS(dvp)->n_flag |= NMODIFIED;
1677 NFS_INVALIDATE_ATTRCACHE(VTONFS(dvp));
1703 struct vnode *dvp = ap->a_dvp;
1733 error = nfs_removerpc(dvp, cnp->cn_nameptr,
1736 error = nfs_sillyrename(dvp, vp, cnp, false);
1743 if (dvp == vp)
1765 nfs_removerpc(struct vnode *dvp, const char *name, int namelen, kauth_cred_t cred, struct lwp *l)
1777 const int v3 = NFS_ISV3(dvp);
1779 struct nfsnode *dnp = VTONFS(dvp);
1789 nfsm_wcc_data(dvp, wccflag, 0, !error);
1792 VTONFS(dvp)->n_flag |= NMODIFIED;
1794 NFS_INVALIDATE_ATTRCACHE(VTONFS(dvp));
1942 * Assumes dvp and vp locked, and leaves them that way.
1946 nfs_linkrpc(struct vnode *dvp, struct vnode *vp, const char *name,
1959 const int v3 = NFS_ISV3(dvp);
1967 nfsm_fhtom(VTONFS(dvp), v3);
1973 nfsm_wcc_data(dvp, wccflag, 0, !error);
1978 VTONFS(dvp)->n_flag |= NMODIFIED;
1982 NFS_INVALIDATE_ATTRCACHE(VTONFS(dvp));
2005 struct vnode *dvp = ap->a_dvp;
2014 dvp, 0);
2026 error = nfs_linkrpc(dvp, vp, cnp->cn_nameptr, cnp->cn_namelen,
2030 cache_purge1(dvp, cnp->cn_nameptr, cnp->cn_namelen, 0);
2036 VOP_ABORTOP(dvp, cnp);
2053 struct vnode *dvp = ap->a_dvp;
2064 const int v3 = NFS_ISV3(dvp);
2066 struct nfsnode *dnp = VTONFS(dvp);
2096 nfsm_mtofh(dvp, newvp, v3, gotvp);
2097 nfsm_wcc_data(dvp, wccflag, 0, !error);
2107 cache_purge1(dvp, cnp->cn_nameptr, cnp->cn_namelen, 0);
2111 error = nfs_lookitup(dvp, cnp->cn_nameptr, cnp->cn_namelen,
2123 VTONFS(dvp)->n_flag |= NMODIFIED;
2125 NFS_INVALIDATE_ATTRCACHE(VTONFS(dvp));
2141 struct vnode *dvp = ap->a_dvp;
2149 struct nfsnode *dnp = VTONFS(dvp), *np = (struct nfsnode *)0;
2156 const int v3 = NFS_ISV3(dvp);
2180 nfsm_mtofh(dvp, newvp, v3, gotvp);
2182 nfsm_wcc_data(dvp, wccflag, 0, !error);
2184 VTONFS(dvp)->n_flag |= NMODIFIED;
2186 NFS_INVALIDATE_ATTRCACHE(VTONFS(dvp));
2196 error = nfs_lookitup(dvp, cnp->cn_nameptr, len, cnp->cn_cred,
2200 if (newvp->v_type != VDIR || newvp == dvp)
2206 if (dvp != newvp)
2212 nfs_cache_enter(dvp, newvp, cnp);
2231 struct vnode *dvp = ap->a_dvp;
2244 const int v3 = NFS_ISV3(dvp);
2247 if (dvp == vp) {
2252 dnp = VTONFS(dvp);
2260 nfsm_wcc_data(dvp, wccflag, 0, !error);
2263 VTONFS(dvp)->n_flag |= NMODIFIED;
2265 NFS_INVALIDATE_ATTRCACHE(VTONFS(dvp));
2826 nfs_sillyrename(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, bool dolink)
2833 cache_purge(dvp);
2841 sp->s_dvp = dvp;
2842 vref(dvp);
2854 while (nfs_lookitup(dvp, sp->s_name, sp->s_namlen, sp->s_cred,
2863 error = nfs_linkrpc(dvp, vp, sp->s_name, sp->s_namlen,
2869 error = nfs_renameit(dvp, cnp, sp);
2872 error = nfs_renameit(dvp, cnp, sp);
2876 error = nfs_lookitup(dvp, sp->s_name, sp->s_namlen, sp->s_cred,
2896 nfs_lookitup(struct vnode *dvp, const char *name, int len, kauth_cred_t cred, struct lwp *l, struct nfsnode **npp)
2902 struct nfsnode *np, *dnp = VTONFS(dvp);
2910 const int v3 = NFS_ISV3(dvp);
2947 vref(dvp);
2948 newvp = dvp;
2951 error = nfs_nget(dvp->v_mount, nfhp, fhlen, &np);