ISLASTCN
&& (cnp->cn_flags & ISLASTCN)
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
last = flags & ISLASTCN;
const bool lastcn __diagused = (cnp->cn_flags & ISLASTCN) != 0;
if ((cnp->cn_flags & ISLASTCN) && cnp->cn_nameiop == CREATE) {
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
if ((flags & ISLASTCN) && nameiop == LOOKUP)
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
if ((flags & ISLASTCN) && nameiop == LOOKUP)
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
(flags & ISLASTCN))
(flags & ISLASTCN) && dp->de_refcnt != 0) {
if (nameiop == DELETE && (flags & ISLASTCN)) {
if (nameiop == RENAME && (flags & ISLASTCN)) {
if ((flags & ISLASTCN) && (mp->mnt_flag & MNT_RDONLY) &&
(flags & ISLASTCN))
(flags & (ISLASTCN | ISOPEN)) == (ISLASTCN | ISOPEN) &&
(flags & ISLASTCN))
(flags & ISLASTCN)) {
if (cnp->cn_nameiop == RENAME && (flags & ISLASTCN)) {
else if ((flags & (ISLASTCN | ISOPEN)) == (ISLASTCN | ISOPEN) &&
if (cnp->cn_nameiop != LOOKUP && (flags & ISLASTCN))
(cnp->cn_nameiop != DELETE || !(flags & ISLASTCN)) &&
cn.cn_flags = ISLASTCN |
islastcn = cnp->cn_flags & ISLASTCN;
if ((cnp->cn_flags & ISLASTCN) &&
if ((cnp->cn_flags & ISLASTCN)
if (cnp->cn_nameiop == RENAME && (cnp->cn_flags & ISLASTCN))
} else if ((cnp->cn_flags & ISLASTCN)
if ((cnp->cn_flags & ISLASTCN) && (v->v_mount->mnt_flag & MNT_RDONLY) &&
const bool lastcn = (cnp->cn_flags & ISLASTCN) != 0;
islastcn = cnp->cn_flags & ISLASTCN;
cn.cn_flags = ISLASTCN | RDONLY;
cnp->cn_flags = LOCKPARENT | ISLASTCN;
if ((cnp->cn_flags & ISLASTCN) &&
if ((uerror == EJUSTRETURN) && (cnp->cn_flags & ISLASTCN) &&
cn->cn_flags = (LOCKPARENT | LOCKLEAF | ISLASTCN);
cn.cn_flags = (LOCKPARENT | LOCKLEAF | ISLASTCN);
if (cnp && !(cnp->cn_flags & ISLASTCN))
cn.cn_flags = (LOCKPARENT | LOCKLEAF | RDONLY | ISLASTCN);
cn.cn_flags = (LOCKPARENT | LOCKLEAF | RDONLY | ISLASTCN);
if ((cnflags & ISLASTCN) &&
bool islastcn = flags & ISLASTCN;
DPRINTF("lastcn=%d\n", flags & ISLASTCN);
if ((cnflags & ISLASTCN) != 0 &&
KASSERT((cnflags & ISLASTCN) != 0);
if (nameiop == CREATE && (cnflags & ISLASTCN) != 0) {
cn.cn_flags = ISLASTCN | ISDOTDOT | RDONLY;
(cnp->cn_nameiop == LOOKUP || (cnp->cn_flags & ISLASTCN) == 0)) {
if ((cnp->cn_flags & (ISLASTCN | LOCKPARENT)) !=
(ISLASTCN | LOCKPARENT)) {
if ((cnp->cn_flags & ISLASTCN) != 0) {
terminal = ((cnp->cn_flags & ISLASTCN) != 0);
(cnp->cn_flags & ISLASTCN) != 0);
if ((cnp->cn_flags & ISLASTCN) != 0) {
cnp->cn_flags |= ISLASTCN;
(cnp->cn_flags & ISLASTCN) != 0);
cnp->cn_flags |= ISLASTCN;
if (cnp->cn_flags & ISLASTCN) {
cnp->cn_flags |= MAKEENTRY|ISLASTCN;
cnp->cn_flags |= ISLASTCN;
cnp->cn_flags &= ~ISLASTCN;
if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) &&
if (error == EJUSTRETURN && (flags & ISLASTCN) &&
if ((cnf & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) &&
if (error == EJUSTRETURN && (cnf & ISLASTCN) &&
if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) &&
if (cnp->cn_nameiop == RENAME && (flags & ISLASTCN))
(flags & (ISLASTCN|ISDOTDOT)) == ISLASTCN &&
if (cnp->cn_nameiop == RENAME && (flags & ISLASTCN)) {
if (cnp->cn_nameiop != DELETE || !(flags & ISLASTCN)) {
(flags & ISLASTCN) && error == ENOENT) {
if ((cnp->cn_flags & ISLASTCN)
if (!(((cnp->cn_flags & ISLASTCN) == 0) || (cnp->cn_nameiop != RENAME)))
if (!rd && ((cnp->cn_flags & ISLASTCN) == 0||cnp->cn_nameiop != CREATE))
if (!rd && (cnp->cn_flags & ISLASTCN) && cnp->cn_nameiop == CREATE) {
if ((cnp->cn_flags & ISLASTCN) && cnp->cn_nameiop == DELETE) {
if ((cnp->cn_flags & ISLASTCN) && cnp->cn_nameiop == CREATE)
if ((cnp->cn_flags & ISLASTCN) && (cnp->cn_nameiop == CREATE
& ISLASTCN)) {
if ((cnp->cn_flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY)
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
(flags & ISLASTCN)) {
(flags & ISLASTCN) && dp->i_e2fs_nlink != 0) {
if ((flags & ISLASTCN) && nameiop == LOOKUP)
if (nameiop == DELETE && (flags & ISLASTCN)) {
if (nameiop == RENAME && (flags & ISLASTCN)) {
cnp.cn_flags = ISLASTCN | lockparent;
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
if ((nameiop == CREATE || nameiop == RENAME) && (flags & ISLASTCN)) {
(flags & ISLASTCN) && dp->i_nlink != 0) {
if ((flags & ISLASTCN) && nameiop == LOOKUP)
if (nameiop == DELETE && (flags & ISLASTCN)) {
if (nameiop == RENAME && (flags & ISLASTCN)) {
cnp.cn_flags = ISLASTCN | lockparent;
if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
if ((nameiop == CREATE || nameiop == RENAME) && (flags & ISLASTCN)) {
(flags & ISLASTCN) && dp->i_nlink != 0) {
if ((flags & ISLASTCN) && nameiop == LOOKUP)
if (nameiop == DELETE && (flags & ISLASTCN)) {
if (nameiop == RENAME && (flags & ISLASTCN)) {