summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2014-08-04 01:10:47 +0000
committerkib <kib@FreeBSD.org>2014-08-04 01:10:47 +0000
commitcec08c72943984a080e6b4dd91ddb8d27f8adf1b (patch)
tree6cfde26daf606387f516520df9b057d020c00068 /sys/fs
parent503271002c5803fd0132e694d53f23d2f1784991 (diff)
downloadFreeBSD-src-cec08c72943984a080e6b4dd91ddb8d27f8adf1b.zip
FreeBSD-src-cec08c72943984a080e6b4dd91ddb8d27f8adf1b.tar.gz
MFC r269187:
Assert that nullfs vnode has VV_ROOT set whenever lower vnode has. Assert that dotdot lookup on the root vnode is not performed.
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/nullfs/null_vnops.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c
index b8b9e0d..481644c 100644
--- a/sys/fs/nullfs/null_vnops.c
+++ b/sys/fs/nullfs/null_vnops.c
@@ -372,6 +372,10 @@ null_lookup(struct vop_lookup_args *ap)
*/
ldvp = NULLVPTOLOWERVP(dvp);
vp = lvp = NULL;
+ KASSERT((ldvp->v_vflag & VV_ROOT) == 0 ||
+ ((dvp->v_vflag & VV_ROOT) != 0 && (flags & ISDOTDOT) == 0),
+ ("ldvp %p fl %#x dvp %p fl %#x flags %#x", ldvp, ldvp->v_vflag,
+ dvp, dvp->v_vflag, flags));
error = VOP_LOOKUP(ldvp, &lvp, cnp);
if (error == EJUSTRETURN && (flags & ISLASTCN) &&
(dvp->v_mount->mnt_flag & MNT_RDONLY) &&
OpenPOWER on IntegriCloud