Lines Matching defs:dvp

1923 nfs3_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct pathname *pnp,
1932 if (nfs_zone() != VTOMI(dvp)->mi_zone)
1935 drp = VTOR(dvp);
1938 * Are we looking up extended attributes? If so, "dvp" is
1947 mi = VTOMI(dvp);
1951 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR(dvp)))
1954 (void) nfs3lookup_dnlc(dvp, XATTR_DIR_NAME, &avp, cr);
1956 error = acl_getxattrdir3(dvp, &avp, cflag, cr, 0);
1967 dvp = avp;
1968 drp = VTOR(dvp);
1971 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR(dvp))) {
1976 error = nfs3lookup(dvp, nm, vpp, pnp, flags, rdir, cr, 0);
2008 nfs3lookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct pathname *pnp,
2014 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
2016 * If lookup is for "", just return dvp. Don't need
2021 VN_HOLD(dvp);
2022 *vpp = dvp;
2029 if (dvp->v_type != VDIR)
2043 * If lookup is for ".", just return dvp. Don't need
2048 error = nfs3_access(dvp, VEXEC, 0, cr, NULL);
2051 VN_HOLD(dvp);
2052 *vpp = dvp;
2056 drp = VTOR(dvp);
2067 error = nfs3lookup_dnlc(dvp, nm, vpp, cr);
2072 error = nfs3lookup_otw(dvp, nm, vpp, cr, rfscall_flags);
2078 nfs3lookup_dnlc(vnode_t *dvp, char *nm, vnode_t **vpp, cred_t *cr)
2084 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
2098 vp = dnlc_lookup(dvp, nm);
2101 if (vp == DNLC_NO_VNODE && !vn_is_readonly(dvp)) {
2102 PURGE_ATTRCACHE(dvp);
2104 error = nfs3_validate_caches(dvp, cr);
2107 vp = dnlc_lookup(dvp, nm);
2109 error = nfs3_access(dvp, VEXEC, 0, cr, NULL);
2142 nfs3lookup_otw(vnode_t *dvp, char *nm, vnode_t **vpp, cred_t *cr,
2156 ASSERT(dvp->v_type == VDIR);
2157 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
2159 setdiropargs3(&args.what, nm, dvp);
2161 fi.vp = dvp;
2166 res.obj_attributes.fres.vp = dvp;
2168 res.dir_attributes.fres.vp = dvp;
2175 error = rfs3call(VTOMI(dvp), NFSPROC3_LOOKUP,
2183 nfs3_cache_post_op_vattr(dvp, &res.dir_attributes, t, cr);
2187 PURGE_STALE_FH(error, dvp, cr);
2189 dnlc_enter(dvp, nm, DNLC_NO_VNODE);
2195 dvp->v_vfsp, t, cr, VTOR(dvp)->r_path, nm);
2198 dvp->v_vfsp, t, cr, VTOR(dvp)->r_path, nm);
2211 dnlc_update(dvp, nm, vp);
2224 nfs3_create(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
2235 drp = VTOR(dvp);
2236 if (nfs_zone() != VTOMI(dvp)->mi_zone)
2238 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
2249 * If the pathname is "", just use dvp. Don't need
2255 VN_HOLD(dvp);
2256 vp = dvp;
2258 * If the pathname is ".", just use dvp. Don't need
2263 error = nfs3_access(dvp, VEXEC, 0, cr, ct);
2268 VN_HOLD(dvp);
2269 vp = dvp;
2276 error = nfs3lookup_otw(dvp, nm, &vp, cr, 0);
2331 dnlc_remove(dvp, nm);
2337 error = setdirgid(dvp, &vattr.va_gid, cr);
2351 error = nfs3create(dvp, nm, &vattr, exclusive, mode, vpp, cr,
2391 error = nfs3mknod(dvp, nm, &vattr, exclusive, mode, vpp, cr);
2398 nfs3create(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
2412 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
2413 setdiropargs3(&args.where, nm, dvp);
2469 error = rfs3call(VTOMI(dvp), NFSPROC3_CREATE,
2475 PURGE_ATTRCACHE(dvp);
2481 nfs3_cache_wcc_data(dvp, &res.resok.dir_wcc, t, cr);
2482 if (HAVE_RDDIR_CACHE(VTOR(dvp)))
2483 nfs_purge_rddir_cache(dvp);
2497 error = nfs3lookup(dvp, nm, &vp, NULL, 0, NULL, cr, 0);
2504 dvp->v_vfsp, t, cr, NULL, NULL);
2507 dvp->v_vfsp, t, cr, NULL, NULL);
2532 (void) nfs3_remove(dvp,
2553 dnlc_update(dvp, nm, vp);
2610 (void) nfs3_remove(dvp, nm, cr, NULL, 0);
2636 nfs3_cache_wcc_data(dvp, &res.resfail.dir_wcc, t, cr);
2637 PURGE_STALE_FH(error, dvp, cr);
2716 nfs3mknod(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
2727 ASSERT(nfs_zone() == VTOMI(dvp)->mi_zone);
2731 setdiropargs3(&args.where, nm, dvp);
2747 setdiropargs3(&args.where, nm, dvp);
2765 error = rfs3call(VTOMI(dvp), NFSPROC3_MKNOD,
2771 PURGE_ATTRCACHE(dvp);
2777 nfs3_cache_wcc_data(dvp, &res.resok.dir_wcc, t, cr);
2778 if (HAVE_RDDIR_CACHE(VTOR(dvp)))
2779 nfs_purge_rddir_cache(dvp);
2782 error = nfs3lookup(dvp, nm, &vp, NULL, 0, NULL, cr, 0);
2789 dvp->v_vfsp, t, cr, NULL, NULL);
2792 dvp->v_vfsp, t, cr, NULL, NULL);
2804 dnlc_update(dvp, nm, vp);
2821 nfs3_cache_wcc_data(dvp, &res.resfail.dir_wcc, t, cr);
2822 PURGE_STALE_FH(error, dvp, cr);
2834 nfs3_remove(vnode_t *dvp, char *nm, cred_t *cr, caller_context_t *ct, int flags)
2846 if (nfs_zone() != VTOMI(dvp)->mi_zone)
2848 drp = VTOR(dvp);
2849 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
2852 error = nfs3lookup(dvp, nm, &vp, NULL, 0, NULL, cr, 0);
2858 if (vp->v_type == VDIR && secpolicy_fs_linkdir(cr, dvp->v_vfsp)) {
2868 dnlc_remove(dvp, nm);
2888 error = nfs3rename(dvp, nm, dvp, tmpname, cr, ct);
2894 VN_HOLD(dvp);
2895 rp->r_unldvp = dvp;
2926 setdiropargs3(&args.object, nm, dvp);
2932 error = rfs3call(VTOMI(dvp), NFSPROC3_REMOVE,
2941 if (dvp->v_flag & V_XATTRDIR)
2942 dnlc_purge_vp(dvp);
2947 PURGE_ATTRCACHE(dvp);
2951 nfs3_cache_wcc_data(dvp, &res.resok.dir_wcc, t,
2954 nfs_purge_rddir_cache(dvp);
2956 nfs3_cache_wcc_data(dvp, &res.resfail.dir_wcc,
2958 PURGE_STALE_FH(error, dvp, cr);
2964 vnevent_remove(vp, dvp, nm, ct);
3375 nfs3_mkdir(vnode_t *dvp, char *nm, struct vattr *va, vnode_t **vpp, cred_t *cr,
3387 if (nfs_zone() != VTOMI(dvp)->mi_zone)
3389 setdiropargs3(&args.where, nm, dvp);
3395 error = setdirgid(dvp, &va->va_gid, cr);
3398 error = setdirmode(dvp, &va->va_mode, cr);
3409 drp = VTOR(dvp);
3410 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
3413 dnlc_remove(dvp, nm);
3419 error = rfs3call(VTOMI(dvp), NFSPROC3_MKDIR,
3425 PURGE_ATTRCACHE(dvp);
3432 nfs3_cache_wcc_data(dvp, &res.resok.dir_wcc, t, cr);
3434 nfs_purge_rddir_cache(dvp);
3437 error = nfs3lookup(dvp, nm, &vp, NULL, 0, NULL, cr, 0);
3446 dvp->v_vfsp, t, cr, NULL, NULL);
3449 dvp->v_vfsp, t, cr, NULL, NULL);
3461 dnlc_update(dvp, nm, vp);
3469 nfs3_cache_wcc_data(dvp, &res.resfail.dir_wcc, t, cr);
3470 PURGE_STALE_FH(error, dvp, cr);
3480 nfs3_rmdir(vnode_t *dvp, char *nm, vnode_t *cdir, cred_t *cr,
3491 if (nfs_zone() != VTOMI(dvp)->mi_zone)
3493 drp = VTOR(dvp);
3494 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
3500 error = nfs3lookup(dvp, nm, &vp, NULL, 0, NULL, cr, 0);
3512 setdiropargs3(&args.object, nm, dvp);
3518 dnlc_remove(dvp, nm);
3539 error = rfs3call(VTOMI(dvp), NFSPROC3_RMDIR,
3547 PURGE_ATTRCACHE(dvp);
3555 nfs3_cache_wcc_data(dvp, &res.resok.dir_wcc, t, cr);
3557 nfs_purge_rddir_cache(dvp);
3561 nfs3_cache_wcc_data(dvp, &res.resfail.dir_wcc, t, cr);
3562 PURGE_STALE_FH(error, dvp, cr);
3574 vnevent_rmdir(vp, dvp, nm, ct);
3585 nfs3_symlink(vnode_t *dvp, char *lnm, struct vattr *tva, char *tnm, cred_t *cr,
3599 mi = VTOMI(dvp);
3606 setdiropargs3(&args.where, lnm, dvp);
3614 drp = VTOR(dvp);
3615 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR(dvp)))
3618 dnlc_remove(dvp, lnm);
3630 PURGE_ATTRCACHE(dvp);
3637 nfs3_cache_wcc_data(dvp, &res.resok.dir_wcc, t, cr);
3639 nfs_purge_rddir_cache(dvp);
3645 dvp->v_vfsp, t, cr, NULL, NULL);
3648 dvp->v_vfsp, t, cr, NULL, NULL);
3652 dnlc_update(dvp, lnm, vp);
3680 nfs3_cache_wcc_data(dvp, &res.resfail.dir_wcc, t, cr);
3681 PURGE_STALE_FH(error, dvp, cr);