Module Name: src Committed By: riastradh Date: Mon Mar 13 14:24:20 UTC 2017
Modified Files: src/sys/ufs/lfs: lfs_alloc.c lfs_bio.c lfs_segment.c lfs_syscalls.c lfs_vfsops.c ulfs_bmap.c ulfs_vnops.c Log Message: #if DIAGNOSTIC panic ---> KASSERT Replace some #if DEBUG by this too. DEBUG is only for expensive assertions; these are not. To generate a diff of this commit: cvs rdiff -u -r1.133 -r1.134 src/sys/ufs/lfs/lfs_alloc.c cvs rdiff -u -r1.135 -r1.136 src/sys/ufs/lfs/lfs_bio.c cvs rdiff -u -r1.263 -r1.264 src/sys/ufs/lfs/lfs_segment.c cvs rdiff -u -r1.172 -r1.173 src/sys/ufs/lfs/lfs_syscalls.c cvs rdiff -u -r1.352 -r1.353 src/sys/ufs/lfs/lfs_vfsops.c cvs rdiff -u -r1.7 -r1.8 src/sys/ufs/lfs/ulfs_bmap.c cvs rdiff -u -r1.44 -r1.45 src/sys/ufs/lfs/ulfs_vnops.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/ufs/lfs/lfs_alloc.c diff -u src/sys/ufs/lfs/lfs_alloc.c:1.133 src/sys/ufs/lfs/lfs_alloc.c:1.134 --- src/sys/ufs/lfs/lfs_alloc.c:1.133 Sun Aug 7 05:09:12 2016 +++ src/sys/ufs/lfs/lfs_alloc.c Mon Mar 13 14:24:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_alloc.c,v 1.133 2016/08/07 05:09:12 dholland Exp $ */ +/* $NetBSD: lfs_alloc.c,v 1.134 2017/03/13 14:24:20 riastradh Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2007 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_alloc.c,v 1.133 2016/08/07 05:09:12 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_alloc.c,v 1.134 2017/03/13 14:24:20 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_quota.h" @@ -168,10 +168,8 @@ lfs_extend_ifile(struct lfs *fs, kauth_c */ LFS_GET_HEADFREE(fs, cip, cbp, &oldlast); LFS_PUT_HEADFREE(fs, cip, cbp, i); -#ifdef DIAGNOSTIC - if (lfs_sb_getfreehd(fs) == LFS_UNUSED_INUM) - panic("inode 0 allocated [2]"); -#endif /* DIAGNOSTIC */ + KASSERTMSG((lfs_sb_getfreehd(fs) != LFS_UNUSED_INUM), + "inode 0 allocated [2]"); /* inode number to stop at (XXX: why *x*max?) */ xmax = i + lfs_sb_getifpb(fs); @@ -298,10 +296,8 @@ lfs_valloc(struct vnode *pvp, int mode, return error; } } -#ifdef DIAGNOSTIC - if (lfs_sb_getfreehd(fs) == LFS_UNUSED_INUM) - panic("inode 0 allocated [3]"); -#endif /* DIAGNOSTIC */ + KASSERTMSG((lfs_sb_getfreehd(fs) != LFS_UNUSED_INUM), + "inode 0 allocated [3]"); /* Set superblock modified bit */ mutex_enter(&lfs_lock); @@ -667,12 +663,8 @@ lfs_vfree(struct vnode *vp, ino_t ino, i } } } -#ifdef DIAGNOSTIC /* XXX: shouldn't this check be further up *before* we trash the fs? */ - if (ino == LFS_UNUSED_INUM) { - panic("inode 0 freed"); - } -#endif /* DIAGNOSTIC */ + KASSERTMSG((ino != LFS_UNUSED_INUM), "inode 0 freed"); /* * Update the segment summary for the segment where the on-disk @@ -681,18 +673,12 @@ lfs_vfree(struct vnode *vp, ino_t ino, i if (old_iaddr != LFS_UNUSED_DADDR) { /* load it */ LFS_SEGENTRY(sup, fs, lfs_dtosn(fs, old_iaddr), bp); -#ifdef DIAGNOSTIC /* the number of bytes in the segment should not become < 0 */ - if (sup->su_nbytes < DINOSIZE(fs)) { - printf("lfs_vfree: negative byte count" - " (segment %" PRIu32 " short by %d)\n", - lfs_dtosn(fs, old_iaddr), - (int)DINOSIZE(fs) - - sup->su_nbytes); - panic("lfs_vfree: negative byte count"); - sup->su_nbytes = DINOSIZE(fs); - } -#endif + KASSERTMSG((sup->su_nbytes >= DINOSIZE(fs)), + "lfs_vfree: negative byte count" + " (segment %" PRIu32 " short by %d)\n", + lfs_dtosn(fs, old_iaddr), + (int)DINOSIZE(fs) - sup->su_nbytes); /* update the number of bytes in the segment */ sup->su_nbytes -= DINOSIZE(fs); /* write the segment entry */ Index: src/sys/ufs/lfs/lfs_bio.c diff -u src/sys/ufs/lfs/lfs_bio.c:1.135 src/sys/ufs/lfs/lfs_bio.c:1.136 --- src/sys/ufs/lfs/lfs_bio.c:1.135 Sat Oct 3 09:31:29 2015 +++ src/sys/ufs/lfs/lfs_bio.c Mon Mar 13 14:24:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_bio.c,v 1.135 2015/10/03 09:31:29 hannken Exp $ */ +/* $NetBSD: lfs_bio.c,v 1.136 2017/03/13 14:24:20 riastradh Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2008 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_bio.c,v 1.135 2015/10/03 09:31:29 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_bio.c,v 1.136 2017/03/13 14:24:20 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -315,11 +315,9 @@ lfs_bwrite(void *v) } */ *ap = v; struct buf *bp = ap->a_bp; -#ifdef DIAGNOSTIC - if (VTOI(bp->b_vp)->i_lfs->lfs_ronly == 0 && (bp->b_flags & B_ASYNC)) { - panic("bawrite LFS buffer"); - } -#endif /* DIAGNOSTIC */ + KASSERTMSG((VTOI(bp->b_vp)->i_lfs->lfs_ronly || + !(bp->b_flags & B_ASYNC)), + "bawrite LFS buffer"); return lfs_bwrite_ext(bp, 0); } @@ -385,10 +383,7 @@ lfs_availwait(struct lfs *fs, int fsb) #endif lfs_wakeup_cleaner(fs); -#ifdef DIAGNOSTIC - if (LFS_SEGLOCK_HELD(fs)) - panic("lfs_availwait: deadlock"); -#endif + KASSERTMSG(!LFS_SEGLOCK_HELD(fs), "lfs_availwait: deadlock"); error = tsleep(&fs->lfs_availsleep, PCATCH | PUSER, "cleaner", 0); if (error) @@ -717,12 +712,8 @@ lfs_newbuf(struct lfs *fs, struct vnode bp->b_data = lfs_malloc(fs, nbytes, type); /* memset(bp->b_data, 0, nbytes); */ } -#ifdef DIAGNOSTIC - if (vp == NULL) - panic("vp is NULL in lfs_newbuf"); - if (bp == NULL) - panic("bp is NULL after malloc in lfs_newbuf"); -#endif + KASSERT(vp != NULL); + KASSERT(bp != NULL); bp->b_bufsize = size; bp->b_bcount = size; @@ -778,11 +769,9 @@ lfs_countlocked(int *count, long *bytes, KASSERT(bp->b_iodone == NULL); n++; size += bp->b_bufsize; -#ifdef DIAGNOSTIC - if (n > nbuf) - panic("lfs_countlocked: this can't happen: more" - " buffers locked than exist"); -#endif + KASSERTMSG((n <= nbuf), + "lfs_countlocked: this can't happen: more" + " buffers locked than exist"); } /* * Theoretically this function never really does anything. Index: src/sys/ufs/lfs/lfs_segment.c diff -u src/sys/ufs/lfs/lfs_segment.c:1.263 src/sys/ufs/lfs/lfs_segment.c:1.264 --- src/sys/ufs/lfs/lfs_segment.c:1.263 Mon Oct 19 04:21:48 2015 +++ src/sys/ufs/lfs/lfs_segment.c Mon Mar 13 14:24:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_segment.c,v 1.263 2015/10/19 04:21:48 dholland Exp $ */ +/* $NetBSD: lfs_segment.c,v 1.264 2017/03/13 14:24:20 riastradh Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.263 2015/10/19 04:21:48 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.264 2017/03/13 14:24:20 riastradh Exp $"); #ifdef DEBUG # define vndebug(vp, str) do { \ @@ -906,10 +906,8 @@ lfs_writefile(struct lfs *fs, struct seg ip->i_lfs_fragsize[i] < lfs_sb_getbsize(fs)) ++frag; } -#ifdef DIAGNOSTIC - if (frag > 1) - panic("lfs_writefile: more than one fragment!"); -#endif + KASSERTMSG((frag <= 1), + "lfs_writefile: more than one fragment! frag=%d", frag); if (IS_FLUSHING(fs, vp) || (frag == 0 && (lfs_writeindir || (sp->seg_flags & SEGM_CKP)))) { lfs_gather(fs, sp, vp, lfs_match_indir); @@ -992,27 +990,21 @@ lfs_update_iaddr(struct lfs *fs, struct */ if (daddr != LFS_UNUSED_DADDR) { u_int32_t oldsn = lfs_dtosn(fs, daddr); -#ifdef DIAGNOSTIC - int ndupino = (sp->seg_number == oldsn) ? sp->ndupino : 0; -#endif + int ndupino __diagused = + (sp->seg_number == oldsn) ? sp->ndupino : 0; LFS_SEGENTRY(sup, fs, oldsn, bp); -#ifdef DIAGNOSTIC - if (sup->su_nbytes + DINOSIZE(fs) * ndupino < DINOSIZE(fs)) { - printf("lfs_writeinode: negative bytes " - "(segment %" PRIu32 " short by %d, " - "oldsn=%" PRIu32 ", cursn=%" PRIu32 - ", daddr=%" PRId64 ", su_nbytes=%u, " - "ndupino=%d)\n", - lfs_dtosn(fs, daddr), - (int)DINOSIZE(fs) * - (1 - sp->ndupino) - sup->su_nbytes, - oldsn, sp->seg_number, daddr, - (unsigned int)sup->su_nbytes, - sp->ndupino); - panic("lfs_writeinode: negative bytes"); - sup->su_nbytes = DINOSIZE(fs); - } -#endif + KASSERTMSG(((sup->su_nbytes + DINOSIZE(fs)*ndupino) + >= DINOSIZE(fs)), + "lfs_writeinode: negative bytes " + "(segment %" PRIu32 " short by %d, " + "oldsn=%" PRIu32 ", cursn=%" PRIu32 + ", daddr=%" PRId64 ", su_nbytes=%u, " + "ndupino=%d)\n", + lfs_dtosn(fs, daddr), + (int)DINOSIZE(fs) * (1 - sp->ndupino) - sup->su_nbytes, + oldsn, sp->seg_number, daddr, + (unsigned int)sup->su_nbytes, + sp->ndupino); DLOG((DLOG_SU, "seg %d -= %d for ino %d inode\n", lfs_dtosn(fs, daddr), DINOSIZE(fs), ino)); sup->su_nbytes -= DINOSIZE(fs); @@ -1313,10 +1305,8 @@ lfs_gatherblock(struct segment *sp, stru * If full, finish this segment. We may be doing I/O, so * release and reacquire the splbio(). */ -#ifdef DIAGNOSTIC - if (sp->vp == NULL) - panic ("lfs_gatherblock: Null vp in segment"); -#endif + KASSERTMSG((sp->vp != NULL), + "lfs_gatherblock: Null vp in segment"); fs = sp->fs; blksinblk = howmany(bp->b_bcount, lfs_sb_getbsize(fs)); if (sp->sum_bytes_left < sizeof(int32_t) * blksinblk || @@ -1545,37 +1535,26 @@ lfs_update_single(struct lfs *fs, struct */ if (daddr > 0) { u_int32_t oldsn = lfs_dtosn(fs, daddr); -#ifdef DIAGNOSTIC - int ndupino; + int ndupino __diagused = (sp && sp->seg_number == oldsn ? + sp->ndupino : 0); - if (sp && sp->seg_number == oldsn) { - ndupino = sp->ndupino; - } else { - ndupino = 0; - } -#endif KASSERT(oldsn < lfs_sb_getnseg(fs)); if (lbn >= 0 && lbn < ULFS_NDADDR) osize = ip->i_lfs_fragsize[lbn]; else osize = lfs_sb_getbsize(fs); LFS_SEGENTRY(sup, fs, oldsn, bp); -#ifdef DIAGNOSTIC - if (sup->su_nbytes + DINOSIZE(fs) * ndupino < osize) { - printf("lfs_updatemeta: negative bytes " - "(segment %" PRIu32 " short by %" PRId64 - ")\n", lfs_dtosn(fs, daddr), - (int64_t)osize - - (DINOSIZE(fs) * ndupino + sup->su_nbytes)); - printf("lfs_updatemeta: ino %llu, lbn %" PRId64 - ", addr = 0x%" PRIx64 "\n", - (unsigned long long)ip->i_number, lbn, daddr); - printf("lfs_updatemeta: ndupino=%d\n", ndupino); - panic("lfs_updatemeta: negative bytes"); - sup->su_nbytes = osize - - DINOSIZE(fs) * ndupino; - } -#endif + KASSERTMSG(((sup->su_nbytes + DINOSIZE(fs)*ndupino) >= osize), + "lfs_updatemeta: negative bytes " + "(segment %" PRIu32 " short by %" PRId64 + ")\n" + "lfs_updatemeta: ino %llu, lbn %" PRId64 + ", addr = 0x%" PRIx64 "\n" + "lfs_updatemeta: ndupino=%d", + lfs_dtosn(fs, daddr), + (int64_t)osize - (DINOSIZE(fs) * ndupino + sup->su_nbytes), + (unsigned long long)ip->i_number, lbn, daddr, + ndupino); DLOG((DLOG_SU, "seg %" PRIu32 " -= %d for ino %d lbn %" PRId64 " db 0x%" PRIx64 "\n", lfs_dtosn(fs, daddr), osize, @@ -2292,15 +2271,13 @@ lfs_writeseg(struct lfs *fs, struct segm cbp->b_cflags |= BC_BUSY; cbp->b_bcount = 0; -#if defined(DEBUG) && defined(DIAGNOSTIC) - if (bpp - sp->bpp > (lfs_sb_getsumsize(fs) - SEGSUM_SIZE(fs)) - / sizeof(int32_t)) { - panic("lfs_writeseg: real bpp overwrite"); - } - if (bpp - sp->bpp > lfs_segsize(fs) / lfs_sb_getfsize(fs)) { - panic("lfs_writeseg: theoretical bpp overwrite"); - } -#endif + KASSERTMSG((bpp - sp->bpp <= + (lfs_sb_getsumsize(fs) - SEGSUM_SIZE(fs)) + / sizeof(int32_t)), + "lfs_writeseg: real bpp overwrite"); + KASSERTMSG((bpp - sp->bpp <= + lfs_segsize(fs) / lfs_sb_getfsize(fs)), + "lfs_writeseg: theoretical bpp overwrite"); /* * Construct the cluster. @@ -2329,17 +2306,13 @@ lfs_writeseg(struct lfs *fs, struct segm LFS_NB_CLUSTER); cl->flags |= LFS_CL_MALLOC; } -#ifdef DIAGNOSTIC - if (lfs_dtosn(fs, LFS_DBTOFSB(fs, bp->b_blkno + - btodb(bp->b_bcount - 1))) != - sp->seg_number) { - printf("blk size %d daddr %" PRIx64 - " not in seg %d\n", - bp->b_bcount, bp->b_blkno, - sp->seg_number); - panic("segment overwrite"); - } -#endif + KASSERTMSG((lfs_dtosn(fs, LFS_DBTOFSB(fs, bp->b_blkno + + btodb(bp->b_bcount - 1))) == + sp->seg_number), + "segment overwrite: blk size %d daddr %" PRIx64 + " not in seg %d\n", + bp->b_bcount, bp->b_blkno, + sp->seg_number); #ifdef LFS_USE_B_INVAL /* @@ -2413,13 +2386,11 @@ lfs_writesuper(struct lfs *fs, daddr_t d int s; ASSERT_MAYBE_SEGLOCK(fs); -#ifdef DIAGNOSTIC if (fs->lfs_is64) { KASSERT(fs->lfs_dlfs_u.u_64.dlfs_magic == LFS64_MAGIC); } else { KASSERT(fs->lfs_dlfs_u.u_32.dlfs_magic == LFS_MAGIC); } -#endif /* * If we can write one superblock while another is in * progress, we risk not having a complete checkpoint if we crash. @@ -2684,10 +2655,8 @@ lfs_cluster_aiodone(struct buf *bp) wakeup(&cl->seg->seg_iocount); } mutex_enter(&lfs_lock); -#ifdef DIAGNOSTIC - if (fs->lfs_iocount == 0) - panic("lfs_cluster_aiodone: zero iocount"); -#endif + KASSERTMSG((fs->lfs_iocount != 0), + "lfs_cluster_aiodone: zero iocount"); if (--fs->lfs_iocount <= 1) wakeup(&fs->lfs_iocount); mutex_exit(&lfs_lock); Index: src/sys/ufs/lfs/lfs_syscalls.c diff -u src/sys/ufs/lfs/lfs_syscalls.c:1.172 src/sys/ufs/lfs/lfs_syscalls.c:1.173 --- src/sys/ufs/lfs/lfs_syscalls.c:1.172 Thu Oct 15 06:15:48 2015 +++ src/sys/ufs/lfs/lfs_syscalls.c Mon Mar 13 14:24:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_syscalls.c,v 1.172 2015/10/15 06:15:48 dholland Exp $ */ +/* $NetBSD: lfs_syscalls.c,v 1.173 2017/03/13 14:24:20 riastradh Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2007, 2007, 2008 @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_syscalls.c,v 1.172 2015/10/15 06:15:48 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_syscalls.c,v 1.173 2017/03/13 14:24:20 riastradh Exp $"); #ifndef LFS # define LFS /* for prototypes in syscallargs.h */ @@ -465,10 +465,7 @@ lfs_markv(struct lwp *l, fsid_t *fsidp, numrefed--; } -#ifdef DIAGNOSTIC - if (numrefed != 0) - panic("lfs_markv: numrefed=%d", numrefed); -#endif + KASSERTMSG((numrefed == 0), "lfs_markv: numrefed=%d", numrefed); DLOG((DLOG_CLEAN, "lfs_markv: writing %d blks %d inos (check point)\n", nblkwritten, ninowritten)); @@ -512,10 +509,7 @@ err3: lfs_segunlock(fs); vfs_unbusy(mntp, false, NULL); -#ifdef DIAGNOSTIC - if (numrefed != 0) - panic("lfs_markv: numrefed=%d", numrefed); -#endif + KASSERTMSG((numrefed == 0), "lfs_markv: numrefed=%d", numrefed); return (error); } @@ -769,10 +763,7 @@ lfs_bmapv(struct lwp *l, fsid_t *fsidp, numrefed--; } -#ifdef DIAGNOSTIC - if (numrefed != 0) - panic("lfs_bmapv: numrefed=%d", numrefed); -#endif + KASSERTMSG((numrefed == 0), "lfs_bmapv: numrefed=%d", numrefed); vfs_unbusy(mntp, false, NULL); Index: src/sys/ufs/lfs/lfs_vfsops.c diff -u src/sys/ufs/lfs/lfs_vfsops.c:1.352 src/sys/ufs/lfs/lfs_vfsops.c:1.353 --- src/sys/ufs/lfs/lfs_vfsops.c:1.352 Fri Feb 17 08:31:26 2017 +++ src/sys/ufs/lfs/lfs_vfsops.c Mon Mar 13 14:24:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_vfsops.c,v 1.352 2017/02/17 08:31:26 hannken Exp $ */ +/* $NetBSD: lfs_vfsops.c,v 1.353 2017/03/13 14:24:20 riastradh Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2007, 2007 @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_vfsops.c,v 1.352 2017/02/17 08:31:26 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_vfsops.c,v 1.353 2017/03/13 14:24:20 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_lfs.h" @@ -2319,16 +2319,10 @@ lfs_vinit(struct mount *mp, struct vnode ip->i_lfs_fragsize[i] = lfs_blksize(fs, ip, i); } -#ifdef DIAGNOSTIC - if (vp->v_type == VNON) { -# ifdef DEBUG - lfs_dump_dinode(fs, ip->i_din); -# endif - panic("lfs_vinit: ino %llu is type VNON! (ifmt=%o)\n", - (unsigned long long)ip->i_number, - (ip->i_mode & LFS_IFMT) >> 12); - } -#endif /* DIAGNOSTIC */ + KASSERTMSG((vp->v_type != VNON), + "lfs_vinit: ino %llu is type VNON! (ifmt=%o)\n", + (unsigned long long)ip->i_number, + (ip->i_mode & LFS_IFMT) >> 12); /* * Finish inode initialization now that aliasing has been resolved. Index: src/sys/ufs/lfs/ulfs_bmap.c diff -u src/sys/ufs/lfs/ulfs_bmap.c:1.7 src/sys/ufs/lfs/ulfs_bmap.c:1.8 --- src/sys/ufs/lfs/ulfs_bmap.c:1.7 Tue Sep 1 06:08:37 2015 +++ src/sys/ufs/lfs/ulfs_bmap.c Mon Mar 13 14:24:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ulfs_bmap.c,v 1.7 2015/09/01 06:08:37 dholland Exp $ */ +/* $NetBSD: ulfs_bmap.c,v 1.8 2017/03/13 14:24:20 riastradh Exp $ */ /* from NetBSD: ufs_bmap.c,v 1.50 2013/01/22 09:39:18 dholland Exp */ /* @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ulfs_bmap.c,v 1.7 2015/09/01 06:08:37 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ulfs_bmap.c,v 1.8 2017/03/13 14:24:20 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -152,10 +152,8 @@ ulfs_bmaparray(struct vnode *vp, daddr_t mp = vp->v_mount; ump = ip->i_ump; fs = ip->i_lfs; -#ifdef DIAGNOSTIC - if ((ap != NULL && nump == NULL) || (ap == NULL && nump != NULL)) - panic("ulfs_bmaparray: invalid arguments"); -#endif + KASSERTMSG(((ap == NULL) == (nump == NULL)), + "ulfs_bmaparray: invalid arguments: ap=%p, nump=%p", ap, nump); if (runp) { /* @@ -275,12 +273,9 @@ ulfs_bmaparray(struct vnode *vp, daddr_t } if (bp->b_oflags & (BO_DONE | BO_DELWRI)) { trace(TR_BREADHIT, pack(vp, size), metalbn); - } -#ifdef DIAGNOSTIC - else if (!daddr) - panic("ulfs_bmaparray: indirect block not in cache"); -#endif - else { + } else { + KASSERTMSG(daddr, + "ulfs_bmaparray: indirect block not in cache"); trace(TR_BREADMISS, pack(vp, size), metalbn); bp->b_blkno = blkptrtodb(fs, daddr); bp->b_flags |= B_READ; Index: src/sys/ufs/lfs/ulfs_vnops.c diff -u src/sys/ufs/lfs/ulfs_vnops.c:1.44 src/sys/ufs/lfs/ulfs_vnops.c:1.45 --- src/sys/ufs/lfs/ulfs_vnops.c:1.44 Mon Jun 20 03:36:09 2016 +++ src/sys/ufs/lfs/ulfs_vnops.c Mon Mar 13 14:24:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ulfs_vnops.c,v 1.44 2016/06/20 03:36:09 dholland Exp $ */ +/* $NetBSD: ulfs_vnops.c,v 1.45 2017/03/13 14:24:20 riastradh Exp $ */ /* from NetBSD: ufs_vnops.c,v 1.232 2016/05/19 18:32:03 riastradh Exp */ /*- @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ulfs_vnops.c,v 1.44 2016/06/20 03:36:09 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ulfs_vnops.c,v 1.45 2017/03/13 14:24:20 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_lfs.h" @@ -637,10 +637,8 @@ ulfs_whiteout(void *v) case CREATE: /* create a new directory whiteout */ fstrans_start(dvp->v_mount, FSTRANS_SHARED); -#ifdef DIAGNOSTIC - if (fs->um_maxsymlinklen <= 0) - panic("ulfs_whiteout: old format filesystem"); -#endif + KASSERTMSG((fs->um_maxsymlinklen > 0), + "ulfs_whiteout: old format filesystem"); error = ulfs_direnter(dvp, ulr, NULL, cnp, ULFS_WINO, LFS_DT_WHT, NULL); @@ -649,10 +647,8 @@ ulfs_whiteout(void *v) case DELETE: /* remove an existing directory whiteout */ fstrans_start(dvp->v_mount, FSTRANS_SHARED); -#ifdef DIAGNOSTIC - if (fs->um_maxsymlinklen <= 0) - panic("ulfs_whiteout: old format filesystem"); -#endif + KASSERTMSG((fs->um_maxsymlinklen > 0), + "ulfs_whiteout: old format filesystem"); cnp->cn_flags &= ~DOWHITEOUT; error = ulfs_dirremove(dvp, ulr, NULL, cnp->cn_flags, 0);