Lines Matching refs:unp
73 struct unionfs_node *unp;
110 unp = kmem_zalloc(sizeof(*unp), KM_SLEEP);
111 unp->un_vnode = vp;
112 unp->un_uppervp = uppervp;
113 unp->un_lowervp = lowervp;
114 unp->un_dvp = dvp;
117 unp->un_path = (char *)
119 memcpy(unp->un_path, cnp->cn_nameptr, cnp->cn_namelen);
120 unp->un_path[cnp->cn_namelen] = '\0';
123 vp->v_data = unp;
141 struct unionfs_node *unp;
150 unp = VTOUNIONFS(vp);
151 lvp = unp->un_lowervp;
152 uvp = unp->un_uppervp;
153 unp->un_lowervp = unp->un_uppervp = NULLVP;
160 if (unp->un_dvp != NULLVP) {
161 vrele(unp->un_dvp);
162 unp->un_dvp = NULLVP;
164 if (unp->un_path) {
165 free(unp->un_path, M_UNIONFSPATH);
166 unp->un_path = NULL;
169 while ((unsp = LIST_FIRST(&(unp->un_unshead))) != NULL) {
173 kmem_free(unp, sizeof(*unp));
181 unionfs_get_node_status(struct unionfs_node *unp,
189 KASSERT(VOP_ISLOCKED(UNIONFSTOV(unp)) == LK_EXCLUSIVE);
194 LIST_FOREACH(unsp, &(unp->un_unshead), uns_list) {
205 LIST_INSERT_HEAD(&(unp->un_unshead), unsp, uns_list);
215 unionfs_tryrem_node_status(struct unionfs_node *unp,
219 KASSERT(VOP_ISLOCKED(UNIONFSTOV(unp)) == LK_EXCLUSIVE);
466 unionfs_node_update(struct unionfs_node *unp, struct vnode *uvp)
471 vp = UNIONFSTOV(unp);
472 lvp = unp->un_lowervp;
478 unp->un_uppervp = uvp;
488 * If no error returned, unp will be updated.
492 struct unionfs_node *unp, struct componentname *cnp)
502 if (unp->un_uppervp != NULLVP)
505 lvp = unp->un_lowervp;
531 unionfs_node_update(unp, uvp);
590 * unp is never updated.
594 struct unionfs_node *unp, struct vattr *uvap)
606 ump = MOUNTTOUNIONFSMOUNT(UNIONFSTOV(unp)->v_mount);
608 lvp = unp->un_lowervp;
617 if (unp->un_path == NULL)
620 cn.cn_namelen = strlen(unp->un_path);
622 memcpy(pnbuf, unp->un_path, cn.cn_namelen + 1);
730 * If no error returned, unp will be updated.
733 unionfs_copyfile(struct unionfs_node *unp, int docopy, kauth_cred_t cred)
741 lvp = unp->un_lowervp;
744 if ((UNIONFSTOV(unp)->v_mount->mnt_flag & MNT_RDONLY))
746 if (unp->un_dvp == NULLVP)
748 if (unp->un_uppervp != NULLVP)
750 udvp = VTOUNIONFS(unp->un_dvp)->un_uppervp;
760 error = unionfs_vn_create_on_upper(&uvp, udvp, unp, &uva);
780 unionfs_node_update(unp, uvp);
901 struct unionfs_node *unp;
903 unp = VTOUNIONFS(vp);
915 return (unp->un_uppervp);
921 struct unionfs_node *unp;
923 unp = VTOUNIONFS(vp);
935 return (unp->un_lowervp);