Lines Matching defs:dvp

620 	vnode_t *dvp = NULL;
645 if ((error = vtodv(*vpp, &dvp, cr, TRUE)) != 0)
648 drp = VTOR4(dvp);
649 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR4(dvp)))
670 dnlc_update(dvp, fn, *vpp);
685 error = nfs4open_otw(dvp, fn, NULL, vpp, cr, 0, flag, 0,
689 dnlc_update(dvp, fn, *vpp);
694 VN_RELE(dvp);
710 vnode_t *dvp, OPEN4cargs *open_args)
715 vfsp = (dvp ? dvp->v_vfsp : vp->v_vfsp);
729 * The vp (if it is not NULL) and dvp are held and rele'd via
733 lost_rqstp->lr_dvp = dvp;
766 nfs4open_otw(vnode_t *dvp, char *file_name, struct vattr *in_va,
771 rnode4_t *drp = VTOR4(dvp);
828 if ((VTOMI4(dvp)->mi_flags & MI4_GRPID ||
848 * SAVEFH + PUTFH(dfh) + GETATTR(dvp) + RESTOREFH +
873 ASSERT(nfs_zone() == VTOMI4(dvp)->mi_zone);
907 drp = VTOR4(dvp);
917 e.error = nfs4_start_op(VTOMI4(dvp), dvp, vpi, &recov_state);
989 nfs4_end_op(VTOMI4(dvp), dvp, vpi,
1016 mutex_enter(&VTOMI4(dvp)->mi_lock);
1019 oop = find_open_owner_nolock(cr, NFS4_JUST_CREATED, VTOMI4(dvp));
1025 oop = create_open_owner(cr, VTOMI4(dvp));
1028 mutex_exit(&VTOMI4(dvp)->mi_lock);
1035 e.error = nfs4_start_open_seqid_sync(oop, VTOMI4(dvp));
1039 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state, TRUE);
1064 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state, FALSE);
1095 argop[idx_fattr].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
1118 argop[6].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
1152 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state, TRUE);
1165 argop[6].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
1171 rnode4info(VTOR4(dvp))));
1175 rfs4call(VTOMI4(dvp), &args, &res, cred_otw, &doqueue, 0, &e);
1180 needrecov = nfs4_needs_recovery(&e, TRUE, dvp->v_vfsp);
1189 cred_otw, vpi, dvp, open_args);
1197 abort = nfs4_start_recovery(&e, VTOMI4(dvp), dvp, vpi,
1211 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state, needrecov);
1224 NFS4_FRC_UNMT_ERR(e.error, dvp->v_vfsp)) {
1252 nfs4_log_badowner(VTOMI4(dvp), OP_OPEN);
1261 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state, needrecov);
1297 mutex_enter(&VTOMI4(dvp)->mi_lock);
1298 VTOMI4(dvp)->mi_flags |= MI4_POSIX_LOCK;
1299 mutex_exit(&VTOMI4(dvp)->mi_lock);
1305 otw_sfh = sfh4_get(&gf_res->object, VTOMI4(dvp));
1342 vp = makenfs4node(otw_sfh, garp, dvp->v_vfsp, t, cr,
1343 dvp, fn_get(VTOSV(dvp)->sv_name, file_name, otw_sfh));
1364 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state,
1404 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state,
1432 nfs4_log_badowner(VTOMI4(dvp), OP_OPEN);
1473 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state, needrecov);
1514 nfs4_inc_state_ref_count_nolock(recov_state.rs_sp, VTOMI4(dvp));
1526 nfs4_end_op(VTOMI4(dvp), dvp, vpi, &recov_state, needrecov);
1571 (void) nfs4_remove(dvp, file_name, cr, NULL, 0);
1607 nfs4_update_dircaches(&op_res->cinfo, dvp, vp, file_name,
4957 nfs4_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct pathname *pnp,
4966 if (nfs_zone() != VTOMI4(dvp)->mi_zone)
4969 * if LOOKUP_XATTR, must replace dvp (object) with
4973 error = nfs4lookup_xattr(dvp, nm, &avp, flags, cr);
4977 dvp = avp;
4980 * If lookup is for "", just return dvp now. The attrdir
4982 * the caller will RELE the original dvp -- not
4993 *vpp = dvp;
5006 drp = VTOR4(dvp);
5007 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR4(dvp)))
5010 error = nfs4lookup(dvp, nm, vpp, cr, 0);
5027 nfs4lookup_xattr(vnode_t *dvp, char *nm, vnode_t **vpp, int flags, cred_t *cr)
5034 mi = VTOMI4(dvp);
5039 drp = VTOR4(dvp);
5040 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR4(dvp)))
5066 if (ATTRCACHE4_VALID(dvp)) {
5078 error = nfs4openattr(dvp, vpp, cflag, cr);
5086 nfs4lookup(vnode_t *dvp, char *nm, vnode_t **vpp, cred_t *cr, int skipdnlc)
5091 ASSERT(nfs_zone() == VTOMI4(dvp)->mi_zone);
5094 * If lookup is for "", just return dvp. Don't need
5099 VN_HOLD(dvp);
5100 *vpp = dvp;
5107 if (dvp->v_type != VDIR)
5111 * If lookup is for ".", just return dvp. Don't need
5116 error = nfs4_access(dvp, VEXEC, 0, cr, NULL);
5119 VN_HOLD(dvp);
5120 *vpp = dvp;
5124 drp = VTOR4(dvp);
5137 *vpp = dnlc_lookup(dvp, nm);
5142 return (nfs4lookupnew_otw(dvp, nm, vpp, cr));
5149 (dvp->v_vfsp->vfs_flag & VFS_RDONLY)) {
5153 if (ATTRCACHE4_VALID(dvp)) {
5154 error = nfs4_waitfor_purge_complete(dvp);
5165 if (ATTRCACHE4_VALID(dvp)) {
5171 *vpp = dnlc_lookup(dvp, nm);
5173 return (nfs4lookupnew_otw(dvp,
5179 error = nfs4_access(dvp, VEXEC, 0, cr, NULL);
5208 return (nfs4lookupvalidate_otw(dvp, nm, vpp, cr));
5228 * set a new r_time_attr_inval for dvp
5235 nfs4lookupvalidate_otw(vnode_t *dvp, char *nm, vnode_t **vpp, cred_t *cr)
5254 rnode4_t *drp = VTOR4(dvp);
5258 ASSERT(nfs_zone() == VTOMI4(dvp)->mi_zone);
5261 ASSERT(dvp->v_type == VDIR);
5270 * If dvp were a stub, it should have triggered and caused
5273 ASSERT(!RP_ISSTUB(VTOR4(dvp)));
5279 mi = VTOMI4(dvp);
5289 e.error = nfs4_start_fop(mi, dvp, NULL, OH_LOOKUP,
5306 argop[0].nfs_argop4_u.opcputfh.sfh = VTOR4(dvp)->r_fh;
5314 IXDR_PUT_HYPER(ptr, VTOR4(dvp)->r_change);
5320 argop[2].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
5341 argop[6].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
5346 rfs4call(VTOMI4(dvp), &args, &res, cr, &doqueue, 0, &e);
5349 e.error = nfs4_setup_referral(dvp, nm, vpp, cr);
5352 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5359 if (nfs4_needs_recovery(&e, FALSE, dvp->v_vfsp)) {
5369 if ((e.error = nfs4_secinfo_vnode_otw(dvp, nm, cr)))
5370 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5373 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5385 if (nfs4_start_recovery(&e, mi, dvp, NULL, NULL, NULL,
5387 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5396 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP, &recov_state, FALSE);
5429 nfs4_purge_stale_fh(e.error, dvp, cr);
5439 nfs4_purge_caches(dvp, NFS4_NOPURGE_DNLC, cr, TRUE);
5442 nfs4_purge_stale_fh(e.error, dvp, cr);
5451 nfs4_attr_cache(dvp,
5456 nfs4_purge_stale_fh(e.error, dvp, cr);
5490 e.error = nfs4_access(dvp, VEXEC, 0, cr, NULL);
5504 dnlc_update(dvp, nm, DNLC_NO_VNODE);
5511 dnlc_remove(dvp, nm);
5524 dnlc_remove(dvp, nm);
5537 dnlc_remove(dvp, nm);
5551 e.error = nfs4_make_dotdot(sfhp, t, dvp, cr, &nvp, 1);
5565 nvp = makenfs4node(sfhp, garp, dvp->v_vfsp, t, cr,
5566 dvp, fn_get(VTOSV(dvp)->sv_name, nm, sfhp));
5597 dnlc_update(dvp, nm, nvp);
5616 if (!(mi->mi_flags & MI4_NOAC) && !(dvp->v_flag & VNOCACHE)) {
5625 dnlc_update(dvp, nm, *vpp);
5632 e.error = nfs4_access(dvp, VEXEC, 0, cr, NULL);
5669 nfs4lookupnew_otw(vnode_t *dvp, char *nm, vnode_t **vpp, cred_t *cr)
5689 rnode4_t *drp = VTOR4(dvp);
5692 ASSERT(nfs_zone() == VTOMI4(dvp)->mi_zone);
5695 ASSERT(dvp->v_type == VDIR);
5704 * If dvp were a stub, it should have triggered and caused
5707 ASSERT(!RP_ISSTUB(VTOR4(dvp)));
5713 mi = VTOMI4(dvp);
5723 e.error = nfs4_start_fop(mi, dvp, NULL, OH_LOOKUP,
5738 argop[0].nfs_argop4_u.opcputfh.sfh = VTOR4(dvp)->r_fh;
5757 argop[4].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
5768 IXDR_PUT_HYPER(ptr, VTOR4(dvp)->r_change);
5774 argop[7].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
5784 rfs4call(VTOMI4(dvp), &args, &res, cr, &doqueue, 0, &e);
5787 e.error = nfs4_setup_referral(dvp, nm, vpp, cr);
5790 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5797 if (nfs4_needs_recovery(&e, FALSE, dvp->v_vfsp)) {
5807 if ((e.error = nfs4_secinfo_vnode_otw(dvp, nm, cr)))
5808 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5811 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5821 if (nfs4_start_recovery(&e, mi, dvp, NULL, NULL, NULL,
5823 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP,
5832 nfs4_end_fop(mi, dvp, NULL, OH_LOOKUP, &recov_state, FALSE);
5861 nfs4_purge_stale_fh(e.error, dvp, cr);
5875 dnlc_update(dvp, nm, DNLC_NO_VNODE);
5930 nfs4_purge_caches(dvp, NFS4_NOPURGE_DNLC, cr, TRUE);
5936 nfs4_attr_cache(dvp,
5941 nfs4_purge_stale_fh(e.error, dvp, cr);
5973 e.error = nfs4_access(dvp, VEXEC, 0, cr, NULL);
5994 if (!(mi->mi_flags & MI4_NOAC) && !(dvp->v_flag & VNOCACHE)) {
6009 e.error = nfs4_access(dvp, VEXEC, 0, cr, NULL);
6023 e.error = nfs4_make_dotdot(sfhp, t, dvp, cr, &nvp, 1);
6035 nvp = makenfs4node(sfhp, garp, dvp->v_vfsp, t, cr,
6036 dvp, fn_get(VTOSV(dvp)->sv_name, nm, sfhp));
6044 dnlc_update(dvp, nm, nvp);
6360 nfs4openattr(vnode_t *dvp, vnode_t **avp, int cflag, cred_t *cr)
6377 ASSERT(nfs_zone() == VTOMI4(dvp)->mi_zone);
6389 e.error = nfs4_start_op(VTOMI4(dvp), dvp, NULL, &recov_state);
6393 drp = VTOR4(dvp);
6409 argop[3].nfs_argop4_u.opgetattr.mi = VTOMI4(dvp);
6417 rfs4call(VTOMI4(dvp), &args, &res, cr, &doqueue, 0, &e);
6419 needrecov = nfs4_needs_recovery(&e, FALSE, dvp->v_vfsp);
6427 VTOMI4(dvp), dvp, NULL, NULL, NULL,
6429 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state, needrecov);
6440 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state, needrecov);
6467 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state,
6484 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state, needrecov);
6488 sfhp = sfh4_get(&gf_res->object, VTOMI4(dvp));
6490 dvp->v_vfsp, t, cr, dvp,
6491 fn_get(VTOSV(dvp)->sv_name, XATTR_RPATH, sfhp));
6519 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state, needrecov);
6528 nfs4_create(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
6542 if (nfs_zone() != VTOMI4(dvp)->mi_zone)
6544 if (exclusive == EXCL && (dvp->v_flag & V_XATTRDIR)) {
6553 drp = VTOR4(dvp);
6555 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR4(dvp)))
6566 * If the pathname is "", then dvp is the root vnode of
6575 VN_HOLD(dvp);
6576 vp = dvp;
6584 error = nfs4lookup(dvp, nm, &vp, cr, 1);
6702 dnlc_remove(dvp, nm);
6710 error = nfs4mknod(dvp, nm, &vattr, exclusive, mode, vpp, cr);
6734 error = nfs4open_otw(dvp, nm, &vattr, vpp, cr, 1, flags, createmode, 0);
6813 call_nfs4_create_req(vnode_t *dvp, char *nm, void *data, struct vattr *va,
6823 rnode4_t *drp = VTOR4(dvp);
6842 mi = VTOMI4(dvp);
6854 if (VOP_GETATTR(dvp, &dva, 0, cr, NULL) == 0) {
6895 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR4(dvp))) {
6915 if (e.error = nfs4_start_op(mi, dvp, NULL, &recov_state)) {
6954 nfs4_end_op(mi, dvp, NULL, &recov_state, needrecov);
6993 nfs4_end_op(mi, dvp, *vpp, &recov_state, TRUE);
7012 nfs4_end_op(mi, dvp, *vpp, &recov_state, TRUE);
7029 dnlc_remove(dvp, nm);
7037 PURGE_ATTRCACHE4(dvp);
7043 if (nfs4_start_recovery(&e, mi, dvp, NULL, NULL, NULL,
7045 nfs4_end_op(mi, dvp, NULL, &recov_state,
7082 PURGE_ATTRCACHE4(dvp);
7088 nfs4_end_op(mi, dvp, NULL, &recov_state,
7091 nfs4_purge_stale_fh(e.error, dvp, cr);
7104 *vpp = vp = makenfs4node(sfhp, NULL, dvp->v_vfsp, t, cr, dvp,
7105 fn_get(VTOSV(dvp)->sv_name, nm, sfhp));
7112 nfs4_end_op(mi, dvp, NULL, &recov_state,
7127 dvp->v_vfsp, t, cr,
7128 dvp, fn_get(VTOSV(dvp)->sv_name, nm, sfhp));
7143 nfs4_update_dircaches(cinfo, dvp, vp, nm, dinfop);
7157 nfs4_end_op(mi, dvp, NULL, &recov_state, needrecov);
7165 nfs4mknod(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
7173 ASSERT(nfs_zone() == VTOMI4(dvp)->mi_zone);
7195 error = call_nfs4_create_req(dvp, nm, specp, va, &vp, cr, type);
7234 nfs4_remove(vnode_t *dvp, char *nm, cred_t *cr, caller_context_t *ct, int flags)
7253 if (nfs_zone() != VTOMI4(dvp)->mi_zone)
7255 drp = VTOR4(dvp);
7256 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR4(dvp)))
7259 e.error = nfs4lookup(dvp, nm, &vp, cr, 0);
7275 dnlc_remove(dvp, nm);
7312 e.error = nfs4rename(dvp, nm, dvp, tmpname, cr, ct);
7318 VN_HOLD(dvp);
7319 rp->r_unldvp = dvp;
7357 mi = VTOMI4(dvp);
7371 e.error = nfs4_start_op(VTOMI4(dvp), dvp, NULL, &recov_state);
7399 PURGE_ATTRCACHE4(dvp);
7402 if (nfs4_start_recovery(&e, VTOMI4(dvp), dvp,
7407 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state,
7420 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state, needrecov);
7427 PURGE_ATTRCACHE4(dvp);
7428 nfs4_purge_stale_fh(e.error, dvp, cr);
7438 nfs4_update_dircaches(&rm_res->cinfo, dvp, NULL, NULL,
7453 vnevent_remove(tvp, dvp, nm, ct);
8618 nfs4_mkdir(vnode_t *dvp, char *nm, struct vattr *va, vnode_t **vpp, cred_t *cr,
8624 if (nfs_zone() != VTOMI4(dvp)->mi_zone)
8639 error = call_nfs4_create_req(dvp, nm, NULL, va, &vp, cr, NF4DIR);
8657 nfs4_rmdir(vnode_t *dvp, char *nm, vnode_t *cdir, cred_t *cr,
8675 if (nfs_zone() != VTOMI4(dvp)->mi_zone)
8685 drp = VTOR4(dvp);
8686 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_WRITER, INTR4(dvp)))
8692 e.error = nfs4lookup(dvp, nm, &vp, cr, 0);
8717 dnlc_remove(dvp, nm);
8734 mi = VTOMI4(dvp);
8747 e.error = nfs4_start_op(VTOMI4(dvp), dvp, NULL, &recov_state);
8775 PURGE_ATTRCACHE4(dvp);
8779 if (nfs4_start_recovery(&e, VTOMI4(dvp), dvp, NULL, NULL,
8785 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state,
8801 PURGE_ATTRCACHE4(dvp);
8802 nfs4_end_op(VTOMI4(dvp), dvp, NULL,
8805 nfs4_purge_stale_fh(e.error, dvp, cr);
8828 nfs4_update_dircaches(&rm_res->cinfo, dvp, NULL, NULL,
8838 nfs4_end_op(VTOMI4(dvp), dvp, NULL, &recov_state, needrecov);
8852 vnevent_rmdir(tvp, dvp, nm, ct);
8862 nfs4_symlink(vnode_t *dvp, char *lnm, struct vattr *tva, char *tnm, cred_t *cr,
8869 mntinfo4_t *mi = VTOMI4(dvp);
8876 error = call_nfs4_create_req(dvp, lnm, tnm, tva, &vp, cr, NF4LNK);
9174 vnode_t *dvp;
9207 dvp = dnlc_lookup(vp, "..");
9208 if (dvp != NULL && dvp != DNLC_NO_VNODE) {
9210 pnodeid = VTOR4(dvp)->r_attr.va_nodeid;
9219 if (dvp)
9220 VN_RELE(dvp);
9312 rargs->dvp = vp;
10637 vnode_t *dvp, *open_vp;
10648 if ((error = vtodv(open_vp, &dvp, cr, TRUE)) != 0)
10650 drp = VTOR4(dvp);
10652 if (nfs_rw_enter_sig(&drp->r_rwlock, RW_READER, INTR4(dvp))) {
10653 VN_RELE(dvp);
10659 VN_RELE(dvp);
10668 dnlc_update(dvp, file_name, open_vp);
10678 error = nfs4open_otw(dvp, file_name, NULL, &open_vp, cr, 0, FREAD, 0,
10682 VN_RELE(dvp);
10688 VN_RELE(dvp);
12623 nfs4_update_dircaches(change_info4 *cinfo, vnode_t *dvp, vnode_t *vp, char *nm,
12626 rnode4_t *drp = VTOR4(dvp);
12628 ASSERT(nfs_zone() == VTOMI4(dvp)->mi_zone);
12632 nfs4_purge_rddir_cache(dvp);
12642 dnlc_update(dvp, nm, vp);
12655 nfs4_attr_cache(dvp, dinfo->di_garp, dinfo->di_time_call,
12676 PURGE_ATTRCACHE4(dvp);
12683 dnlc_update(dvp, nm, vp);
12697 dnlc_purge_vp(dvp);
14813 vnode_t *dvp = NULL;
14836 dvp = makenfs4node_by_fh(sfh, NULL, &mfname, NULL, mi, cr, 0);
14839 if (dvp->v_type == VNON)
14840 dvp->v_type = VDIR;
14841 *dvpp = dvp;
14859 error = nfs4_make_dotdot(svnp->sv_dfh, 0, vp, cr, &dvp,
14866 if (!dvp) {
14868 "nfs4_make_dotdot returned a NULL dvp"));
14871 if (dvp->v_type == VNON)
14872 dvp->v_type = VDIR;
14873 ASSERT(dvp->v_type == VDIR);
14875 mutex_enter(&dvp->v_lock);
14876 dvp->v_flag |= V_XATTRDIR;
14877 mutex_exit(&dvp->v_lock);
14879 *dvpp = dvp;