Module Name:    src
Committed By:   riastradh
Date:           Fri Apr 22 05:34:58 UTC 2016

Modified Files:
        src/sys/kern: vfs_lookup.c

Log Message:
#if DIAGNOSTIC panic ---> KASSERTMSG


To generate a diff of this commit:
cvs rdiff -u -r1.204 -r1.205 src/sys/kern/vfs_lookup.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/vfs_lookup.c
diff -u src/sys/kern/vfs_lookup.c:1.204 src/sys/kern/vfs_lookup.c:1.205
--- src/sys/kern/vfs_lookup.c:1.204	Tue Apr 12 04:02:55 2016
+++ src/sys/kern/vfs_lookup.c	Fri Apr 22 05:34:58 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_lookup.c,v 1.204 2016/04/12 04:02:55 dholland Exp $	*/
+/*	$NetBSD: vfs_lookup.c,v 1.205 2016/04/22 05:34:58 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.204 2016/04/12 04:02:55 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.205 2016/04/22 05:34:58 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_magiclinks.h"
@@ -492,14 +492,13 @@ namei_init(struct namei_state *state, st
 	state->rdonly = 0;
 	state->slashes = 0;
 
-#ifdef DIAGNOSTIC
-	if (!state->cnp->cn_cred)
-		panic("namei: bad cred/proc");
-	if (state->cnp->cn_nameiop & (~OPMASK))
-		panic("namei: nameiop contaminated with flags");
-	if (state->cnp->cn_flags & OPMASK)
-		panic("namei: flags contaminated with nameiops");
-#endif
+	KASSERTMSG((state->cnp->cn_cred != NULL), "namei: bad cred/proc");
+	KASSERTMSG(((state->cnp->cn_nameiop & (~OPMASK)) == 0),
+	    "namei: nameiop contaminated with flags: %08"PRIx32,
+	    state->cnp->cn_nameiop);
+	KASSERTMSG(((state->cnp->cn_flags & OPMASK) == 0),
+	    "name: flags contaminated with nameiops: %08"PRIx32,
+	    state->cnp->cn_flags);
 
 	/*
 	 * The buffer for name translation shall be the one inside the
@@ -994,10 +993,9 @@ unionlookup:
 	error = VOP_LOOKUP(searchdir, &foundobj, cnp);
 
 	if (error != 0) {
-#ifdef DIAGNOSTIC
-		if (foundobj != NULL)
-			panic("leaf `%s' should be empty", cnp->cn_nameptr);
-#endif /* DIAGNOSTIC */
+		KASSERTMSG((foundobj == NULL),
+		    "leaf `%s' should be empty but is %p",
+		    cnp->cn_nameptr, foundobj);
 #ifdef NAMEI_DIAGNOSTIC
 		printf("not found\n");
 #endif /* NAMEI_DIAGNOSTIC */
@@ -1787,21 +1785,19 @@ relookup(struct vnode *dvp, struct vnode
 	*vpp = NULL;
 	error = VOP_LOOKUP(dvp, vpp, cnp);
 	if ((error) != 0) {
-#ifdef DIAGNOSTIC
-		if (*vpp != NULL)
-			panic("leaf `%s' should be empty", cnp->cn_nameptr);
-#endif
+		KASSERTMSG((*vpp == NULL),
+		    "leaf `%s' should be empty but is %p",
+		    cnp->cn_nameptr, *vpp);
 		if (error != EJUSTRETURN)
 			goto bad;
 	}
 
-#ifdef DIAGNOSTIC
 	/*
 	 * Check for symbolic link
 	 */
-	if (*vpp && (*vpp)->v_type == VLNK && (cnp->cn_flags & FOLLOW))
-		panic("relookup: symlink found");
-#endif
+	KASSERTMSG((*vpp == NULL || (*vpp)->v_type != VLNK ||
+		(cnp->cn_flags & FOLLOW) == 0),
+	    "relookup: symlink found");
 
 	/*
 	 * Check for read-only lookups.

Reply via email to