Lines Matching refs:cnp

83 	struct componentname *cnp = v->a_cnp;
92 error = VOP_ACCESS(dvp, VEXEC, cnp->cn_cred, cnp->cn_thread);
99 !(cnp->cn_flags & ISDOTDOT)));
106 if (cnp->cn_flags & ISDOTDOT) {
108 dnode->tn_dir.tn_parent, cnp->cn_lkflags, vpp);
111 } else if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') {
116 de = tmpfs_dir_lookup(dnode, NULL, cnp);
118 cnp->cn_flags |= ISWHITEOUT;
124 if ((cnp->cn_flags & ISLASTCN) &&
125 (cnp->cn_nameiop == CREATE || \
126 cnp->cn_nameiop == RENAME ||
127 (cnp->cn_nameiop == DELETE &&
128 cnp->cn_flags & DOWHITEOUT &&
129 cnp->cn_flags & ISWHITEOUT))) {
130 error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred,
131 cnp->cn_thread);
137 cnp->cn_flags |= SAVENAME;
155 !(cnp->cn_flags & ISLASTCN)) {
163 if ((cnp->cn_flags & ISLASTCN) &&
164 (cnp->cn_nameiop == DELETE ||
165 cnp->cn_nameiop == RENAME)) {
166 error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred,
167 cnp->cn_thread);
173 cnp->cn_lkflags, vpp);
178 VOP_ACCESS(dvp, VADMIN, cnp->cn_cred, cnp->cn_thread) &&
179 VOP_ACCESS(*vpp, VADMIN, cnp->cn_cred, cnp->cn_thread)) {
185 cnp->cn_flags |= SAVENAME;
188 cnp->cn_lkflags, vpp);
198 if ((cnp->cn_flags & MAKEENTRY) != 0)
199 cache_enter(dvp, *vpp, cnp);
214 struct componentname *cnp = v->a_cnp;
220 error = tmpfs_alloc_file(dvp, vpp, vap, cnp, NULL);
221 if (error == 0 && (cnp->cn_flags & MAKEENTRY) != 0)
222 cache_enter(dvp, *vpp, cnp);
231 struct componentname *cnp = v->a_cnp;
238 return tmpfs_alloc_file(dvp, vpp, vap, cnp, NULL);
569 struct componentname *cnp = v->a_cnp;
576 MPASS(cnp->cn_flags & HASBUF);
596 cnp->cn_nameptr, cnp->cn_namelen, &de);
601 if (cnp->cn_flags & ISWHITEOUT)
602 tmpfs_dir_whiteout_remove(dvp, cnp);
1029 struct componentname *cnp = v->a_cnp;
1034 return tmpfs_alloc_file(dvp, vpp, vap, cnp, NULL);
1135 struct componentname *cnp = v->a_cnp;
1145 return tmpfs_alloc_file(dvp, vpp, vap, cnp, target);
1366 struct componentname *cnp = ap->a_cnp;
1373 de = tmpfs_dir_lookup(VP_TO_TMPFS_DIR(dvp), NULL, cnp);
1376 return (tmpfs_dir_whiteout_add(dvp, cnp));
1378 tmpfs_dir_whiteout_remove(dvp, cnp);