Lines Matching defs:uvp

180 unionfs_get_cached_vnode(struct vnode *uvp, struct vnode *lvp,
187 if (uvp != NULLVP)
188 vp = unionfs_get_cached_vnode_locked(uvp, dvp);
464 struct vnode *uvp;
485 uvp = unp->un_uppervp;
487 unlock_lvp = (uvp == NULLVP);
499 if (uvp != NULLVP && lvp != NULLVP && (vp->v_vflag & VV_ROOT) == 0) {
500 vn_lock_pair(uvp, true, LK_EXCLUSIVE, lvp, false, LK_EXCLUSIVE);
542 VNASSERT(uvp != NULL, vp,
544 VOP_ADD_WRITECOUNT(uvp, -writerefs);
546 if (uvp != NULLVP)
547 vput(uvp);
758 * uvp is new locked upper vnode. unionfs vnode's lock will be exchanged to the
759 * uvp's lock and lower's lock will be unlocked.
762 unionfs_node_update(struct unionfs_node *unp, struct vnode *uvp,
774 ASSERT_VOP_ELOCKED(uvp, __func__);
785 vn_lock(uvp, LK_EXCLUSIVE | LK_CANRECURSE | LK_RETRY);
787 unp->un_uppervp = uvp;
788 vp->v_vnlock = uvp->v_vnlock;
800 hd = unionfs_get_hashhead(dvp, uvp);
887 struct vnode *uvp;
917 uvp = NULLVP;
937 if ((error = unionfs_relookup(udvp, &uvp, cnp, &nd.ni_cnd, td,
956 if (uvp != NULLVP) {
957 if (udvp == uvp)
958 vrele(uvp);
960 vput(uvp);
989 error = VOP_MKDIR(udvp, &uvp, &nd.ni_cnd, &va);
1008 * VOP_SETATTR() may transiently drop uvp's lock, so it's
1010 * the unionfs vnode's lock from lvp to uvp; otherwise the
1014 VOP_SETATTR(uvp, &va, nd.ni_cnd.cn_cred);
1017 * uvp may become doomed during VOP_VPUT_PAIR() if the implementation
1018 * must temporarily drop uvp's lock. However, since we hold a
1019 * reference to uvp from the VOP_MKDIR() call above, this would require
1020 * a forcible unmount of uvp's filesystem, which in turn can only
1024 VOP_VPUT_PAIR(udvp, &uvp, false);
1026 vn_lock_pair(vp, false, LK_EXCLUSIVE, uvp, true, LK_EXCLUSIVE);
1029 vput(uvp);
1032 unionfs_node_update(unp, uvp, td);
1273 struct vnode *uvp;
1284 uvp = NULLVP;
1308 if ((error = vfs_relookup(udvp, &uvp, &nd.ni_cnd, false)) != 0) {
1313 if (uvp != NULLVP) {
1314 if (uvp == udvp)
1315 vrele(uvp);
1317 vput(uvp);
1322 if ((error = VOP_CREATE(udvp, &uvp, &nd.ni_cnd, uvap)) != 0)
1325 if ((error = VOP_OPEN(uvp, fmode, cred, td, NULL)) != 0) {
1326 vput(uvp);
1329 error = VOP_ADD_WRITECOUNT(uvp, 1);
1331 __func__, uvp, uvp->v_writecount);
1333 *vpp = uvp;
1335 VOP_CLOSE(uvp, fmode, cred, td);
1344 * Copy from lvp to uvp.
1346 * lvp and uvp should be locked and opened on entry and will be locked and
1350 unionfs_copyfile_core(struct vnode *lvp, struct vnode *uvp,
1395 if ((error = VOP_WRITE(uvp, &uio, 0, cred)) != 0)
1429 struct vnode *uvp;
1436 uvp = NULLVP;
1470 error = unionfs_vn_create_on_upper(&uvp, udvp, vp, &uva, td);
1479 * uvp below while holding vp[=lvp] locked. Replacing
1484 vn_lock_pair(vp, false, LK_EXCLUSIVE, uvp, true, LK_EXCLUSIVE);
1494 error = unionfs_copyfile_core(lvp, uvp, cred, td);
1498 VOP_CLOSE(uvp, FWRITE, cred, td);
1499 VOP_ADD_WRITECOUNT_CHECKED(uvp, -1);
1501 __func__, uvp, uvp->v_writecount);
1508 VOP_SETATTR(uvp, &uva, cred);
1509 unionfs_node_update(unp, uvp, td);
1537 struct vnode *uvp;
1551 uvp = UNIONFSVPTOUPPERVP(vp);
1577 ASSERT_VOP_ELOCKED(uvp, __func__);
1579 if ((error = VOP_GETATTR(uvp, &va, cred)) != 0)
1648 error = VOP_LOOKUP(uvp, &tvp, &cn);