Lines Matching defs:dvp

1692 nfs_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct pathname *pnp,
1701 if (nfs_zone() != VTOMI(dvp)->mi_zone)
1704 drp = VTOR(dvp);
1707 * Are we looking up extended attributes? If so, "dvp" is
1716 mi = VTOMI(dvp);
1720 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR(dvp)))
1723 (void) nfslookup_dnlc(dvp, XATTR_DIR_NAME, &avp, cr);
1725 error = acl_getxattrdir2(dvp, &avp, cflag, cr, 0);
1736 dvp = avp;
1737 drp = VTOR(dvp);
1740 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR(dvp))) {
1745 error = nfslookup(dvp, nm, vpp, pnp, flags, rdir, cr, 0);
1777 nfslookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct pathname *pnp,
1782 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
1785 * If lookup is for "", just return dvp. Don't need
1790 VN_HOLD(dvp);
1791 *vpp = dvp;
1798 if (dvp->v_type != VDIR)
1812 * If lookup is for ".", just return dvp. Don't need
1817 error = nfs_access(dvp, VEXEC, 0, cr, NULL);
1820 VN_HOLD(dvp);
1821 *vpp = dvp;
1829 error = nfslookup_dnlc(dvp, nm, vpp, cr);
1834 error = nfslookup_otw(dvp, nm, vpp, cr, rfscall_flags);
1840 nfslookup_dnlc(vnode_t *dvp, char *nm, vnode_t **vpp, cred_t *cr)
1846 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
1861 vp = dnlc_lookup(dvp, nm);
1864 if (vp == DNLC_NO_VNODE && !vn_is_readonly(dvp)) {
1865 PURGE_ATTRCACHE(dvp);
1867 error = nfs_validate_caches(dvp, cr);
1870 vp = dnlc_lookup(dvp, nm);
1872 error = nfs_access(dvp, VEXEC, 0, cr, NULL);
1905 nfslookup_otw(vnode_t *dvp, char *nm, vnode_t **vpp, cred_t *cr,
1916 ASSERT(dvp->v_type == VDIR);
1917 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
1919 setdiropargs(&da, nm, dvp);
1921 fi.vp = dvp;
1931 error = rfs2call(VTOMI(dvp), RFS_LOOKUP,
1940 dvp->v_vfsp, t, cr, VTOR(dvp)->r_path, nm);
1953 dnlc_update(dvp, nm, *vpp);
1955 PURGE_STALE_FH(error, dvp, cr);
1957 dnlc_enter(dvp, nm, DNLC_NO_VNODE);
1966 nfs_create(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
1981 drp = VTOR(dvp);
1983 if (nfs_zone() != VTOMI(dvp)->mi_zone)
1985 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
1995 * If the pathname is "", just use dvp. Don't need
2001 VN_HOLD(dvp);
2002 vp = dvp;
2004 * If the pathname is ".", just use dvp. Don't need
2009 error = nfs_access(dvp, VEXEC, 0, cr, ct);
2014 VN_HOLD(dvp);
2015 vp = dvp;
2022 error = nfslookup_otw(dvp, nm, &vp, cr, 0);
2072 dnlc_remove(dvp, nm);
2074 setdiropargs(&args.ca_da, nm, dvp);
2081 error = setdirgid(dvp, &vattr.va_gid, cr);
2147 error = rfs2call(VTOMI(dvp), RFS_CREATE,
2152 PURGE_ATTRCACHE(dvp); /* mod time changed */
2158 nfs_purge_rddir_cache(dvp);
2160 dvp->v_vfsp, t, cr, NULL, NULL);
2172 dnlc_update(dvp, nm, vp);
2204 PURGE_STALE_FH(error, dvp, cr);
2220 nfs_remove(vnode_t *dvp, char *nm, cred_t *cr, caller_context_t *ct, int flags)
2231 if (nfs_zone() != VTOMI(dvp)->mi_zone)
2233 drp = VTOR(dvp);
2234 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
2237 error = nfslookup(dvp, nm, &vp, NULL, 0, NULL, cr, 0);
2243 if (vp->v_type == VDIR && secpolicy_fs_linkdir(cr, dvp->v_vfsp)) {
2253 dnlc_remove(dvp, nm);
2273 error = nfsrename(dvp, nm, dvp, tmpname, cr, ct);
2279 VN_HOLD(dvp);
2280 rp->r_unldvp = dvp;
2311 setdiropargs(&da, nm, dvp);
2315 error = rfs2call(VTOMI(dvp), RFS_REMOVE,
2324 if (dvp->v_flag & V_XATTRDIR)
2325 dnlc_purge_vp(dvp);
2327 PURGE_ATTRCACHE(dvp); /* mod time changed */
2334 nfs_purge_rddir_cache(dvp);
2336 PURGE_STALE_FH(error, dvp, cr);
2342 vnevent_remove(vp, dvp, nm, ct);
2711 nfs_mkdir(vnode_t *dvp, char *nm, struct vattr *va, vnode_t **vpp, cred_t *cr,
2721 if (nfs_zone() != VTOMI(dvp)->mi_zone)
2724 setdiropargs(&args.ca_da, nm, dvp);
2730 error = setdirgid(dvp, &va->va_gid, cr);
2733 error = setdirmode(dvp, &va->va_mode, cr);
2745 drp = VTOR(dvp);
2746 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
2749 dnlc_remove(dvp, nm);
2755 error = rfs2call(VTOMI(dvp), RFS_MKDIR,
2760 PURGE_ATTRCACHE(dvp); /* mod time changed */
2766 nfs_purge_rddir_cache(dvp);
2774 dvp->v_vfsp, t, cr, NULL, NULL);
2776 dnlc_update(dvp, nm, *vpp);
2788 PURGE_STALE_FH(error, dvp, cr);
2799 nfs_rmdir(vnode_t *dvp, char *nm, vnode_t *cdir, cred_t *cr,
2809 if (nfs_zone() != VTOMI(dvp)->mi_zone)
2811 drp = VTOR(dvp);
2812 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
2818 error = nfslookup(dvp, nm, &vp, NULL, 0, NULL, cr, 0);
2830 setdiropargs(&da, nm, dvp);
2836 dnlc_remove(dvp, nm);
2855 error = rfs2call(VTOMI(dvp), RFS_RMDIR,
2860 PURGE_ATTRCACHE(dvp); /* mod time changed */
2871 nfs_purge_rddir_cache(dvp);
2875 PURGE_STALE_FH(error, dvp, cr);
2887 vnevent_rmdir(vp, dvp, nm, ct);
2898 nfs_symlink(vnode_t *dvp, char *lnm, struct vattr *tva, char *tnm, cred_t *cr,
2907 if (nfs_zone() != VTOMI(dvp)->mi_zone)
2909 setdiropargs(&args.sla_from, lnm, dvp);
2918 drp = VTOR(dvp);
2919 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
2922 dnlc_remove(dvp, lnm);
2926 error = rfs2call(VTOMI(dvp), RFS_SYMLINK,
2931 PURGE_ATTRCACHE(dvp); /* mod time changed */
2937 nfs_purge_rddir_cache(dvp);
2939 PURGE_STALE_FH(error, dvp, cr);