Lines Matching defs:fdvp
71 * . fdvp (from directory vnode),
78 * fdvp and tdvp may be the same, and must be referenced and unlocked.
82 struct vnode *fdvp, struct componentname *fcnp,
89 fdvp, fcnp, &fulr, tdvp, tcnp, &tulr,
140 * . fdvp (from directory vnode),
151 * . fdvp, fvp, tdvp, and tvp are referenced,
152 * . fdvp and fvp are unlocked, and
157 * . fdvp, fvp, tdvp, and tvp (if nonnull) are unreferenced, and
162 int (*sane_rename)(struct vnode *fdvp, struct componentname *fcnp,
174 struct vnode *fdvp = ap->a_fdvp;
183 KASSERT(fdvp != NULL);
190 /* KASSERT(VOP_ISLOCKED(fdvp) != LK_EXCLUSIVE); */
194 KASSERT(fdvp->v_type == VDIR);
221 error = (*sane_rename)(fdvp, fcnp, tdvp, tcnp, cred, false);
228 vrele(fdvp);
240 * fdvp and tdvp must be referenced and unlocked.
244 struct vnode *fdvp, struct componentname *fcnp, void *fde,
254 KASSERT(fdvp != NULL);
258 /* KASSERT(VOP_ISLOCKED(fdvp) != LK_EXCLUSIVE); */
260 KASSERT(fdvp->v_type == VDIR);
262 KASSERT(fdvp->v_mount == tdvp->v_mount);
271 mp = fdvp->v_mount;
282 fdvp, fcnp, fde, &fvp,
291 KASSERT(VOP_ISLOCKED(fdvp) == LK_EXCLUSIVE);
309 else if ((fdvp == tdvp) &&
318 fdvp, fcnp, fde, fvp, &tvp_new_nlink);
319 VN_KNOTE(fdvp, NOTE_WRITE);
326 KASSERT((fdvp != tdvp) ||
355 error = ops->gro_rename_check_possible(mp, fdvp, fvp, tdvp, tvp);
358 error = ops->gro_rename_check_permitted(mp, cred, fdvp, fvp, tdvp, tvp);
359 error = kauth_authorize_vnode(cred, KAUTH_VNODE_DELETE, fvp, fdvp,
370 fdvp, fcnp, fde, fvp,
377 genfs_rename_knote(fdvp, fvp, tdvp, tvp, tvp_new_nlink);
380 genfs_rename_exit(ops, mp, fdvp, fvp, tdvp, tvp);
387 * vnodes that may be identical is {fdvp, tdvp}. tvp_new_nlink is
391 genfs_rename_knote(struct vnode *fdvp, struct vnode *fvp,
397 KASSERT(fdvp != NULL);
400 KASSERT(fdvp != fvp);
401 KASSERT(fdvp != tvp);
405 KASSERT(VOP_ISLOCKED(fdvp) == LK_EXCLUSIVE);
411 reparent_p = (fdvp != tdvp);
419 VN_KNOTE(fdvp, fdvp_events);
440 * identical is {fdvp, tdvp}.
443 genfs_rename_cache_purge(struct vnode *fdvp, struct vnode *fvp,
447 KASSERT(fdvp != NULL);
450 KASSERT(fdvp != fvp);
451 KASSERT(fdvp != tvp);
455 KASSERT(fdvp->v_type == VDIR);
462 cache_purge(fdvp);
467 if (tdvp != fdvp)
475 * genfs_rename_enter: Look up fcnp in fdvp, and store the lookup
482 * fdvp and tdvp must be referenced.
488 * identical are {fdvp, tdvp} and {fvp, tvp}.
500 struct vnode *fdvp, struct componentname *fcnp,
508 KASSERT(fdvp != NULL);
515 KASSERT(fdvp->v_type == VDIR);
517 KASSERT(fdvp->v_mount == mp);
520 if (fdvp == tdvp)
521 error = genfs_rename_enter_common(ops, mp, cred, fdvp,
526 fdvp, fcnp, fde_ret, fvp_ret,
535 KASSERT(*fvp_ret != fdvp);
537 KASSERT(*tvp_ret != fdvp);
655 struct vnode *fdvp, struct componentname *fcnp,
666 KASSERT(fdvp != NULL);
672 KASSERT(fdvp != tdvp);
677 KASSERT(fdvp->v_type == VDIR);
679 KASSERT(fdvp->v_mount == mp);
682 error = ops->gro_genealogy(mp, cred, fdvp, tdvp, &intermediate_node);
687 * intermediate_node == NULL means fdvp is not an ancestor of tdvp.
693 fdvp, fcnp, false, fde_ret, &fvp);
697 fdvp, fcnp, false, fde_ret, &fvp,
708 genfs_rename_exit(ops, mp, fdvp, fvp, tdvp, tvp);
963 * fdvp and tdvp must be referenced.
972 struct vnode *fdvp, struct vnode *fvp,
979 KASSERT(fdvp != NULL);
981 KASSERT(fdvp != fvp);
982 KASSERT(fdvp != tvp);
985 KASSERT(VOP_ISLOCKED(fdvp) == LK_EXCLUSIVE);
995 if (tdvp != fdvp)
998 VOP_UNLOCK(fdvp);
1078 * The only pair of vnodes that may be identical is {fdvp, tdvp}.
1084 struct vnode *fdvp, mode_t fdmode, uid_t fduid,
1091 KASSERT(fdvp != NULL);
1094 KASSERT(fdvp != fvp);
1095 KASSERT(fdvp != tvp);
1099 KASSERT(fdvp->v_type == VDIR);
1101 KASSERT(fdvp->v_mount == fvp->v_mount);
1102 KASSERT(fdvp->v_mount == tdvp->v_mount);
1103 KASSERT((tvp == NULL) || (fdvp->v_mount == tvp->v_mount));
1104 KASSERT(VOP_ISLOCKED(fdvp) == LK_EXCLUSIVE);
1112 error = VOP_ACCESS(fdvp, VWRITE, cred);
1122 if (fdvp != tdvp) {