Changeset View
Changeset View
Standalone View
Standalone View
sys/ufs/ufs/ufs_vnops.c
Show First 20 Lines • Show All 1,047 Lines • ▼ Show 20 Lines | case CREATE: | ||||
/* create a new directory whiteout */ | /* create a new directory whiteout */ | ||||
#ifdef INVARIANTS | #ifdef INVARIANTS | ||||
if ((cnp->cn_flags & SAVENAME) == 0) | if ((cnp->cn_flags & SAVENAME) == 0) | ||||
panic("ufs_whiteout: missing name"); | panic("ufs_whiteout: missing name"); | ||||
if (dvp->v_mount->mnt_maxsymlinklen <= 0) | if (dvp->v_mount->mnt_maxsymlinklen <= 0) | ||||
panic("ufs_whiteout: old format filesystem"); | panic("ufs_whiteout: old format filesystem"); | ||||
#endif | #endif | ||||
newdir.d_ino = WINO; | newdir.d_ino = UFS_WINO; | ||||
newdir.d_namlen = cnp->cn_namelen; | newdir.d_namlen = cnp->cn_namelen; | ||||
bcopy(cnp->cn_nameptr, newdir.d_name, (unsigned)cnp->cn_namelen + 1); | bcopy(cnp->cn_nameptr, newdir.d_name, (unsigned)cnp->cn_namelen + 1); | ||||
newdir.d_type = DT_WHT; | newdir.d_type = DT_WHT; | ||||
error = ufs_direnter(dvp, NULL, &newdir, cnp, NULL, 0); | error = ufs_direnter(dvp, NULL, &newdir, cnp, NULL, 0); | ||||
break; | break; | ||||
case DELETE: | case DELETE: | ||||
/* remove an existing directory whiteout */ | /* remove an existing directory whiteout */ | ||||
▲ Show 20 Lines • Show All 1,494 Lines • ▼ Show 20 Lines | ufs_vinit(mntp, fifoops, vpp) | ||||
struct vnode *vp; | struct vnode *vp; | ||||
vp = *vpp; | vp = *vpp; | ||||
ip = VTOI(vp); | ip = VTOI(vp); | ||||
vp->v_type = IFTOVT(ip->i_mode); | vp->v_type = IFTOVT(ip->i_mode); | ||||
if (vp->v_type == VFIFO) | if (vp->v_type == VFIFO) | ||||
vp->v_op = fifoops; | vp->v_op = fifoops; | ||||
ASSERT_VOP_LOCKED(vp, "ufs_vinit"); | ASSERT_VOP_LOCKED(vp, "ufs_vinit"); | ||||
if (ip->i_number == ROOTINO) | if (ip->i_number == UFS_ROOTINO) | ||||
vp->v_vflag |= VV_ROOT; | vp->v_vflag |= VV_ROOT; | ||||
*vpp = vp; | *vpp = vp; | ||||
return (0); | return (0); | ||||
} | } | ||||
/* | /* | ||||
* Allocate a new inode. | * Allocate a new inode. | ||||
* Vnode dvp must be locked. | * Vnode dvp must be locked. | ||||
▲ Show 20 Lines • Show All 259 Lines • Show Last 20 Lines |