Turn most ffs 'DIAGNOSTIC's into INVARIANTS.

This commit is contained in:
David E. O'Brien 2007-11-08 17:21:51 +00:00
parent 0c99c16b0f
commit 1102b89baa
9 changed files with 55 additions and 58 deletions

View file

@ -94,7 +94,7 @@ typedef ufs2_daddr_t allocfcn_t(struct inode *ip, int cg, ufs2_daddr_t bpref,
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, bnp)
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, bnp)
}
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, osize, nsize, cred, bpp)
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, osize, nsize, cred, bpp)
}
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, allocator)
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, inum)
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, inum)
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.

View file

@ -220,7 +220,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size,
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 startoffset, int size,
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

View file

@ -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.
*/

View file

@ -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

View file

@ -42,11 +42,8 @@
__FBSDID("$FreeBSD$");
/*
* For now we want the safety net that the DIAGNOSTIC and DEBUG flags provide.
* For now we want the safety net that the INVARIANTS and DEBUG flags provide.
*/
#ifndef DIAGNOSTIC
#define DIAGNOSTIC
#endif
#ifndef DEBUG
#define DEBUG
#endif
@ -2782,13 +2779,13 @@ handle_workitem_freeblocks(freeblks, flags)
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 +3912,7 @@ initiate_write_inodeblock_ufs1(inodedep, bp)
*/
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 +3934,7 @@ initiate_write_inodeblock_ufs1(inodedep, bp)
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 +3954,18 @@ initiate_write_inodeblock_ufs1(inodedep, bp)
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 +4056,7 @@ initiate_write_inodeblock_ufs2(inodedep, bp)
*/
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 +4070,7 @@ initiate_write_inodeblock_ufs2(inodedep, bp)
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 +4088,10 @@ initiate_write_inodeblock_ufs2(inodedep, bp)
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 +4115,7 @@ initiate_write_inodeblock_ufs2(inodedep, bp)
*/
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 +4137,7 @@ initiate_write_inodeblock_ufs2(inodedep, bp)
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 +4157,18 @@ initiate_write_inodeblock_ufs2(inodedep, bp)
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;

View file

@ -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 *uio, int ioflag)
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 uio *uio, int ioflag, struct ucred *ucred)
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

View file

@ -215,7 +215,7 @@ ufs_bmaparray(vp, bn, bnp, nbp, runp, runb)
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

View file

@ -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

View file

@ -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