Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/unionfs/union_subr.c
Show First 20 Lines • Show All 672 Lines • ▼ Show 20 Lines | unionfs_relookup_for_create(struct vnode *dvp, struct componentname *cnp, | ||||
struct vnode *udvp; | struct vnode *udvp; | ||||
struct vnode *vp; | struct vnode *vp; | ||||
struct componentname cn; | struct componentname cn; | ||||
int error; | int error; | ||||
udvp = UNIONFSVPTOUPPERVP(dvp); | udvp = UNIONFSVPTOUPPERVP(dvp); | ||||
vp = NULLVP; | vp = NULLVP; | ||||
KASSERT((cnp->cn_flags & HASBUF) != 0, | |||||
("%s called without HASBUF", __func__)); | |||||
error = unionfs_relookup(udvp, &vp, cnp, &cn, td, cnp->cn_nameptr, | error = unionfs_relookup(udvp, &vp, cnp, &cn, td, cnp->cn_nameptr, | ||||
cnp->cn_namelen, CREATE); | cnp->cn_namelen, CREATE); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
if (vp != NULLVP) { | if (vp != NULLVP) { | ||||
if (udvp == vp) | if (udvp == vp) | ||||
vrele(vp); | vrele(vp); | ||||
Show All 18 Lines | unionfs_relookup_for_delete(struct vnode *dvp, struct componentname *cnp, | ||||
struct vnode *udvp; | struct vnode *udvp; | ||||
struct vnode *vp; | struct vnode *vp; | ||||
struct componentname cn; | struct componentname cn; | ||||
int error; | int error; | ||||
udvp = UNIONFSVPTOUPPERVP(dvp); | udvp = UNIONFSVPTOUPPERVP(dvp); | ||||
vp = NULLVP; | vp = NULLVP; | ||||
KASSERT((cnp->cn_flags & HASBUF) != 0, | |||||
("%s called without HASBUF", __func__)); | |||||
error = unionfs_relookup(udvp, &vp, cnp, &cn, td, cnp->cn_nameptr, | error = unionfs_relookup(udvp, &vp, cnp, &cn, td, cnp->cn_nameptr, | ||||
cnp->cn_namelen, DELETE); | cnp->cn_namelen, DELETE); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
if (vp == NULLVP) | if (vp == NULLVP) | ||||
error = ENOENT; | error = ENOENT; | ||||
else { | else { | ||||
Show All 18 Lines | unionfs_relookup_for_rename(struct vnode *dvp, struct componentname *cnp, | ||||
struct vnode *udvp; | struct vnode *udvp; | ||||
struct vnode *vp; | struct vnode *vp; | ||||
struct componentname cn; | struct componentname cn; | ||||
int error; | int error; | ||||
udvp = UNIONFSVPTOUPPERVP(dvp); | udvp = UNIONFSVPTOUPPERVP(dvp); | ||||
vp = NULLVP; | vp = NULLVP; | ||||
KASSERT((cnp->cn_flags & HASBUF) != 0, | |||||
("%s called without HASBUF", __func__)); | |||||
error = unionfs_relookup(udvp, &vp, cnp, &cn, td, cnp->cn_nameptr, | error = unionfs_relookup(udvp, &vp, cnp, &cn, td, cnp->cn_nameptr, | ||||
cnp->cn_namelen, RENAME); | cnp->cn_namelen, RENAME); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
if (vp != NULLVP) { | if (vp != NULLVP) { | ||||
if (udvp == vp) | if (udvp == vp) | ||||
vrele(vp); | vrele(vp); | ||||
▲ Show 20 Lines • Show All 577 Lines • Show Last 20 Lines |