Filesystem INVARIANTS
David O'Brien
obrien at freebsd.org
Fri Oct 26 09:59:21 PDT 2007
Hi folks,
Looking at the code in sys/ufs, I think most of the "DIAGNOSTIC"s should
really be "INVARIANTS"s. In fact there are no "INVARIANTS" in the
filesystem code at this time.
Below is a diff of what I feel should change from "DIAGNOSTIC" to
"INVARIANTS". I have not yet had a chance to benchmark the impact of
this change when only INVARIANTS/INVARIANTS_SUPORT and not DIAGNOSTIC is
set vs. nothing set.
Thoughs? Opinions?
Index: ufs/ffs/ffs_alloc.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_alloc.c,v
retrieving revision 1.147
diff -u -p -r1.147 ffs_alloc.c
--- ufs/ffs/ffs_alloc.c 10 Sep 2007 14:12:29 -0000 1.147
+++ ufs/ffs/ffs_alloc.c 26 Oct 2007 16:34:18 -0000
@@ -94,7 +94,7 @@ typedef ufs2_daddr_t allocfcn_t(struct i
static ufs2_daddr_t ffs_alloccg(struct inode *, int, ufs2_daddr_t, int);
static ufs2_daddr_t
ffs_alloccgblk(struct inode *, struct buf *, ufs2_daddr_t);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
static int ffs_checkblk(struct inode *, ufs2_daddr_t, long);
#endif
static ufs2_daddr_t ffs_clusteralloc(struct inode *, int, ufs2_daddr_t, int);
@@ -152,7 +152,7 @@ ffs_alloc(ip, lbn, bpref, size, cred, bn
fs = ip->i_fs;
ump = ip->i_ump;
mtx_assert(UFS_MTX(ump), MA_OWNED);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((u_int)size > fs->fs_bsize || fragoff(fs, size) != 0) {
printf("dev = %s, bsize = %ld, size = %d, fs = %s\n",
devtoname(ip->i_dev), (long)fs->fs_bsize, size,
@@ -161,7 +161,7 @@ ffs_alloc(ip, lbn, bpref, size, cred, bn
}
if (cred == NOCRED)
panic("ffs_alloc: missing credential");
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
reclaimed = 0;
retry:
#ifdef QUOTA
@@ -252,7 +252,7 @@ ffs_realloccg(ip, lbprev, bprev, bpref,
bp = NULL;
ump = ip->i_ump;
mtx_assert(UFS_MTX(ump), MA_OWNED);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (vp->v_mount->mnt_kern_flag & MNTK_SUSPENDED)
panic("ffs_realloccg: allocation on suspended filesystem");
if ((u_int)osize > fs->fs_bsize || fragoff(fs, osize) != 0 ||
@@ -265,7 +265,7 @@ ffs_realloccg(ip, lbprev, bprev, bpref,
}
if (cred == NOCRED)
panic("ffs_realloccg: missing credential");
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
reclaimed = 0;
retry:
if (priv_check_cred(cred, PRIV_VFS_BLOCKRESERVE, 0) &&
@@ -506,7 +506,7 @@ ffs_reallocblks_ufs1(ap)
len = buflist->bs_nchildren;
start_lbn = buflist->bs_children[0]->b_lblkno;
end_lbn = start_lbn + len - 1;
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
for (i = 0; i < len; i++)
if (!ffs_checkblk(ip,
dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
@@ -552,7 +552,7 @@ ffs_reallocblks_ufs1(ap)
if (end_lvl == 0 || (idp = &end_ap[end_lvl - 1])->in_off + 1 >= len) {
ssize = len;
} else {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (start_ap[start_lvl-1].in_lbn == idp->in_lbn)
panic("ffs_reallocblk: start == end");
#endif
@@ -592,7 +592,7 @@ ffs_reallocblks_ufs1(ap)
bap = ebap;
soff = -i;
}
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (!ffs_checkblk(ip,
dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
panic("ffs_reallocblks: unallocated block 2");
@@ -658,7 +658,7 @@ ffs_reallocblks_ufs1(ap)
dbtofsb(fs, buflist->bs_children[i]->b_blkno),
fs->fs_bsize, ip->i_number);
buflist->bs_children[i]->b_blkno = fsbtodb(fs, blkno);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (!ffs_checkblk(ip,
dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
panic("ffs_reallocblks: unallocated block 3");
@@ -713,7 +713,7 @@ ffs_reallocblks_ufs2(ap)
len = buflist->bs_nchildren;
start_lbn = buflist->bs_children[0]->b_lblkno;
end_lbn = start_lbn + len - 1;
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
for (i = 0; i < len; i++)
if (!ffs_checkblk(ip,
dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
@@ -759,7 +759,7 @@ ffs_reallocblks_ufs2(ap)
if (end_lvl == 0 || (idp = &end_ap[end_lvl - 1])->in_off + 1 >= len) {
ssize = len;
} else {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (start_ap[start_lvl-1].in_lbn == idp->in_lbn)
panic("ffs_reallocblk: start == end");
#endif
@@ -799,7 +799,7 @@ ffs_reallocblks_ufs2(ap)
bap = ebap;
soff = -i;
}
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (!ffs_checkblk(ip,
dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
panic("ffs_reallocblks: unallocated block 2");
@@ -865,7 +865,7 @@ ffs_reallocblks_ufs2(ap)
dbtofsb(fs, buflist->bs_children[i]->b_blkno),
fs->fs_bsize, ip->i_number);
buflist->bs_children[i]->b_blkno = fsbtodb(fs, blkno);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (!ffs_checkblk(ip,
dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
panic("ffs_reallocblks: unallocated block 3");
@@ -1261,7 +1261,7 @@ ffs_hashalloc(ip, cg, pref, size, alloca
int i, icg = cg;
mtx_assert(UFS_MTX(ip->i_ump), MA_OWNED);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (ITOV(ip)->v_mount->mnt_kern_flag & MNTK_SUSPENDED)
panic("ffs_hashalloc: allocation on suspended filesystem");
#endif
@@ -1850,7 +1850,7 @@ ffs_blkfree(ump, fs, devvp, bno, size, i
ffs_snapblkfree(fs, devvp, bno, size, inum))
return;
}
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((u_int)size > fs->fs_bsize || fragoff(fs, size) != 0 ||
fragnum(fs, bno) + numfrags(fs, size) > fs->fs_frag) {
printf("dev=%s, bno = %jd, bsize = %ld, size = %ld, fs = %s\n",
@@ -1945,7 +1945,7 @@ ffs_blkfree(ump, fs, devvp, bno, size, i
bdwrite(bp);
}
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
/*
* Verify allocation of a block or fragment. Returns true if block or
* fragment is allocated, false if it is free.
@@ -1994,7 +1994,7 @@ ffs_checkblk(ip, bno, size)
brelse(bp);
return (!free);
}
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
/*
* Free an inode.
Index: ufs/ffs/ffs_balloc.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_balloc.c,v
retrieving revision 1.50
diff -u -p -r1.50 ffs_balloc.c
--- ufs/ffs/ffs_balloc.c 8 Feb 2005 17:23:39 -0000 1.50
+++ ufs/ffs/ffs_balloc.c 26 Oct 2007 16:34:18 -0000
@@ -220,7 +220,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t
pref = 0;
if ((error = ufs_getlbns(vp, lbn, indirs, &num)) != 0)
return(error);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (num < 1)
panic ("ffs_balloc_ufs1: ufs_getlbns returned indirect block");
#endif
@@ -692,7 +692,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t
pref = 0;
if ((error = ufs_getlbns(vp, lbn, indirs, &num)) != 0)
return(error);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (num < 1)
panic ("ffs_balloc_ufs2: ufs_getlbns returned indirect block");
#endif
Index: ufs/ffs/ffs_inode.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_inode.c,v
retrieving revision 1.108
diff -u -p -r1.108 ffs_inode.c
--- ufs/ffs/ffs_inode.c 1 Jun 2007 01:12:45 -0000 1.108
+++ ufs/ffs/ffs_inode.c 26 Oct 2007 16:34:18 -0000
@@ -226,7 +226,7 @@ ffs_truncate(vp, length, flags, cred, td
if (vp->v_type == VLNK &&
(ip->i_size < vp->v_mount->mnt_maxsymlinklen ||
datablocks == 0)) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (length != 0)
panic("ffs_truncate: partial truncate of symlink");
#endif
@@ -479,7 +479,7 @@ ffs_truncate(vp, length, flags, cred, td
}
}
done:
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
for (level = SINGLE; level <= TRIPLE; level++)
if (newblks[NDADDR + level] != DIP(ip, i_ib[level]))
panic("ffs_truncate1");
@@ -493,7 +493,7 @@ done:
vp->v_bufobj.bo_clean.bv_cnt > 0))
panic("ffs_truncate3");
VI_UNLOCK(vp);
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
/*
* Put back the real size.
*/
Index: ufs/ffs/ffs_snapshot.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_snapshot.c,v
retrieving revision 1.136
diff -u -p -r1.136 ffs_snapshot.c
--- ufs/ffs/ffs_snapshot.c 5 Jun 2007 00:00:56 -0000 1.136
+++ ufs/ffs/ffs_snapshot.c 26 Oct 2007 16:34:18 -0000
@@ -2300,7 +2300,7 @@ ffs_copyonwrite(devvp, bp)
blkno=((ufs2_daddr_t *)(ibp->b_data))[indiroff];
bqrelse(ibp);
}
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (blkno == BLK_SNAP && bp->b_lblkno >= 0)
panic("ffs_copyonwrite: bad copy block");
#endif
Index: ufs/ffs/ffs_softdep.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_softdep.c,v
retrieving revision 1.212
diff -u -p -r1.212 ffs_softdep.c
--- ufs/ffs/ffs_softdep.c 20 Oct 2007 23:23:23 -0000 1.212
+++ ufs/ffs/ffs_softdep.c 26 Oct 2007 16:34:18 -0000
@@ -44,8 +44,8 @@ __FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_
/*
* For now we want the safety net that the DIAGNOSTIC and DEBUG flags provide.
*/
-#ifndef DIAGNOSTIC
-#define DIAGNOSTIC
+#ifndef INVARIANTS
+#define INVARIANTS
#endif
#ifndef DEBUG
#define DEBUG
@@ -2782,13 +2782,13 @@ handle_workitem_freeblocks(freeblks, fla
vput(vp);
}
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (freeblks->fb_chkcnt != blocksreleased &&
((fs->fs_flags & FS_UNCLEAN) == 0 || (flags & LK_NOWAIT) != 0))
printf("handle_workitem_freeblocks: block count\n");
if (allerror)
softdep_error("handle_workitem_freeblks", allerror);
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
ACQUIRE_LOCK(&lk);
WORKITEM_FREE(freeblks, D_FREEBLKS);
@@ -3915,7 +3915,7 @@ initiate_write_inodeblock_ufs1(inodedep,
*/
for (deplist = 0, adp = TAILQ_FIRST(&inodedep->id_inoupdt); adp;
adp = TAILQ_NEXT(adp, ad_next)) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (deplist != 0 && prevlbn >= adp->ad_lbn)
panic("softdep_write_inodeblock: lbn order");
prevlbn = adp->ad_lbn;
@@ -3937,7 +3937,7 @@ initiate_write_inodeblock_ufs1(inodedep,
if ((adp->ad_state & ATTACHED) == 0)
panic("softdep_write_inodeblock: Unknown state 0x%x",
adp->ad_state);
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
adp->ad_state &= ~ATTACHED;
adp->ad_state |= UNDONE;
}
@@ -3957,18 +3957,18 @@ initiate_write_inodeblock_ufs1(inodedep,
continue;
dp->di_size = fs->fs_bsize * adp->ad_lbn + adp->ad_oldsize;
for (i = adp->ad_lbn + 1; i < NDADDR; i++) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (dp->di_db[i] != 0 && (deplist & (1 << i)) == 0)
panic("softdep_write_inodeblock: lost dep1");
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
dp->di_db[i] = 0;
}
for (i = 0; i < NIADDR; i++) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (dp->di_ib[i] != 0 &&
(deplist & ((1 << NDADDR) << i)) == 0)
panic("softdep_write_inodeblock: lost dep2");
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
dp->di_ib[i] = 0;
}
return;
@@ -4059,7 +4059,7 @@ initiate_write_inodeblock_ufs2(inodedep,
*/
for (deplist = 0, adp = TAILQ_FIRST(&inodedep->id_extupdt); adp;
adp = TAILQ_NEXT(adp, ad_next)) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (deplist != 0 && prevlbn >= adp->ad_lbn)
panic("softdep_write_inodeblock: lbn order");
prevlbn = adp->ad_lbn;
@@ -4073,7 +4073,7 @@ initiate_write_inodeblock_ufs2(inodedep,
if ((adp->ad_state & ATTACHED) == 0)
panic("softdep_write_inodeblock: Unknown state 0x%x",
adp->ad_state);
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
adp->ad_state &= ~ATTACHED;
adp->ad_state |= UNDONE;
}
@@ -4091,10 +4091,10 @@ initiate_write_inodeblock_ufs2(inodedep,
continue;
dp->di_extsize = fs->fs_bsize * adp->ad_lbn + adp->ad_oldsize;
for (i = adp->ad_lbn + 1; i < NXADDR; i++) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (dp->di_extb[i] != 0 && (deplist & (1 << i)) == 0)
panic("softdep_write_inodeblock: lost dep1");
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
dp->di_extb[i] = 0;
}
lastadp = NULL;
@@ -4118,7 +4118,7 @@ initiate_write_inodeblock_ufs2(inodedep,
*/
for (deplist = 0, adp = TAILQ_FIRST(&inodedep->id_inoupdt); adp;
adp = TAILQ_NEXT(adp, ad_next)) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (deplist != 0 && prevlbn >= adp->ad_lbn)
panic("softdep_write_inodeblock: lbn order");
prevlbn = adp->ad_lbn;
@@ -4140,7 +4140,7 @@ initiate_write_inodeblock_ufs2(inodedep,
if ((adp->ad_state & ATTACHED) == 0)
panic("softdep_write_inodeblock: Unknown state 0x%x",
adp->ad_state);
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
adp->ad_state &= ~ATTACHED;
adp->ad_state |= UNDONE;
}
@@ -4160,18 +4160,18 @@ initiate_write_inodeblock_ufs2(inodedep,
continue;
dp->di_size = fs->fs_bsize * adp->ad_lbn + adp->ad_oldsize;
for (i = adp->ad_lbn + 1; i < NDADDR; i++) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (dp->di_db[i] != 0 && (deplist & (1 << i)) == 0)
panic("softdep_write_inodeblock: lost dep2");
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
dp->di_db[i] = 0;
}
for (i = 0; i < NIADDR; i++) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (dp->di_ib[i] != 0 &&
(deplist & ((1 << NDADDR) << i)) == 0)
panic("softdep_write_inodeblock: lost dep3");
-#endif /* DIAGNOSTIC */
+#endif /* INVARIANTS */
dp->di_ib[i] = 0;
}
return;
Index: ufs/ffs/ffs_vnops.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_vnops.c,v
retrieving revision 1.173
diff -u -p -r1.173 ffs_vnops.c
--- ufs/ffs/ffs_vnops.c 13 Jul 2007 18:51:08 -0000 1.173
+++ ufs/ffs/ffs_vnops.c 26 Oct 2007 16:34:18 -0000
@@ -325,7 +325,7 @@ loop:
passes -= 1;
goto loop;
}
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (!vn_isdisk(vp, NULL))
vprint("ffs_fsync: dirty", vp);
#endif
@@ -443,7 +443,7 @@ ffs_read(ap)
seqcount = ap->a_ioflag >> IO_SEQSHIFT;
ip = VTOI(vp);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (uio->uio_rw != UIO_READ)
panic("ffs_read: mode");
@@ -645,7 +645,7 @@ ffs_write(ap)
seqcount = ap->a_ioflag >> IO_SEQSHIFT;
ip = VTOI(vp);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (uio->uio_rw != UIO_WRITE)
panic("ffs_write: mode");
#endif
@@ -869,7 +869,7 @@ ffs_extread(struct vnode *vp, struct uio
fs = ip->i_fs;
dp = ip->i_din2;
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (uio->uio_rw != UIO_READ || fs->fs_magic != FS_UFS2_MAGIC)
panic("ffs_extread: mode");
@@ -1031,7 +1031,7 @@ ffs_extwrite(struct vnode *vp, struct ui
KASSERT(!(ip->i_flag & IN_SPACECOUNTED), ("inode %u: inode is dead",
ip->i_number));
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (uio->uio_rw != UIO_WRITE || fs->fs_magic != FS_UFS2_MAGIC)
panic("ffs_extwrite: mode");
#endif
Index: ufs/ufs/ufs_bmap.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ufs/ufs_bmap.c,v
retrieving revision 1.66
diff -u -p -r1.66 ufs_bmap.c
--- ufs/ufs/ufs_bmap.c 1 Jun 2007 01:12:45 -0000 1.66
+++ ufs/ufs/ufs_bmap.c 26 Oct 2007 16:34:18 -0000
@@ -215,7 +215,7 @@ ufs_bmaparray(vp, bn, bnp, nbp, runp, ru
ap->in_exists = 1;
bp = getblk(vp, metalbn, mp->mnt_stat.f_iosize, 0, 0, 0);
if ((bp->b_flags & B_CACHE) == 0) {
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (!daddr)
panic("ufs_bmaparray: indirect block not in cache");
#endif
Index: ufs/ufs/ufs_lookup.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ufs/ufs_lookup.c,v
retrieving revision 1.83
diff -u -p -r1.83 ufs_lookup.c
--- ufs/ufs/ufs_lookup.c 14 Mar 2007 08:50:27 -0000 1.83
+++ ufs/ufs/ufs_lookup.c 26 Oct 2007 16:34:18 -0000
@@ -660,7 +660,7 @@ ufs_makedirentry(ip, cnp, newdirp)
struct direct *newdirp;
{
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((cnp->cn_flags & SAVENAME) == 0)
panic("ufs_makedirentry: missing name");
#endif
Index: ufs/ufs/ufs_vnops.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ufs/ufs_vnops.c,v
retrieving revision 1.292
diff -u -p -r1.292 ufs_vnops.c
--- ufs/ufs/ufs_vnops.c 24 Oct 2007 19:04:04 -0000 1.292
+++ ufs/ufs/ufs_vnops.c 26 Oct 2007 16:34:25 -0000
@@ -855,7 +855,7 @@ ufs_link(ap)
struct direct newdir;
int error;
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((cnp->cn_flags & HASBUF) == 0)
panic("ufs_link: no name");
#endif
@@ -921,7 +921,7 @@ ufs_whiteout(ap)
case CREATE:
/* create a new directory whiteout */
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((cnp->cn_flags & SAVENAME) == 0)
panic("ufs_whiteout: missing name");
if (dvp->v_mount->mnt_maxsymlinklen <= 0)
@@ -937,7 +937,7 @@ ufs_whiteout(ap)
case DELETE:
/* remove an existing directory whiteout */
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if (dvp->v_mount->mnt_maxsymlinklen <= 0)
panic("ufs_whiteout: old format filesystem");
#endif
@@ -998,7 +998,7 @@ ufs_rename(ap)
int doingdirectory = 0, oldparent = 0, newparent = 0;
int error = 0, ioflag;
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((tcnp->cn_flags & HASBUF) == 0 ||
(fcnp->cn_flags & HASBUF) == 0)
panic("ufs_rename: no name");
@@ -1382,7 +1382,7 @@ ufs_mkdir(ap)
int error, dmode;
long blkoff;
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((cnp->cn_flags & HASBUF) == 0)
panic("ufs_mkdir: no name");
#endif
@@ -2227,7 +2227,7 @@ ufs_makeinode(mode, dvp, vpp, cnp)
int error;
pdir = VTOI(dvp);
-#ifdef DIAGNOSTIC
+#ifdef INVARIANTS
if ((cnp->cn_flags & HASBUF) == 0)
panic("ufs_makeinode: no name");
#endif
--
-- David (obrien at FreeBSD.org)
Q: Because it reverses the logical flow of conversation.
A: Why is top-posting (putting a reply at the top of the message) frowned upon?
Let's not play "Jeopardy-style quoting"
More information about the freebsd-arch
mailing list