diff options
author | 2004-10-25 23:36:50 +0000 | |
---|---|---|
committer | 2004-10-25 23:36:50 +0000 | |
commit | 6c1f4a27bc729d0a7dad4aa3e319b50b3664a4bd (patch) | |
tree | f0e74399ccd3ad98c69035f58b05db1b985212d5 | |
parent | add EHCI_QTD_SET_STATUS (diff) | |
download | wireguard-openbsd-6c1f4a27bc729d0a7dad4aa3e319b50b3664a4bd.tar.xz wireguard-openbsd-6c1f4a27bc729d0a7dad4aa3e319b50b3664a4bd.zip |
don't assume a block is allocated if bread() or cg_chkmagic() fails.
ok marius@ tedu@
-rw-r--r-- | sys/ufs/ffs/ffs_alloc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c index 68a499cd040..4edc0274079 100644 --- a/sys/ufs/ffs/ffs_alloc.c +++ b/sys/ufs/ffs/ffs_alloc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ffs_alloc.c,v 1.50 2004/09/18 22:01:18 tedu Exp $ */ +/* $OpenBSD: ffs_alloc.c,v 1.51 2004/10/25 23:36:50 pedro Exp $ */ /* $NetBSD: ffs_alloc.c,v 1.11 1996/05/11 18:27:09 mycroft Exp $ */ /* @@ -1588,16 +1588,16 @@ ffs_checkblk(ip, bno, size) error = bread(ip->i_devvp, fsbtodb(fs, cgtod(fs, dtog(fs, bno))), (int)fs->fs_cgsize, NOCRED, &bp); if (error) { - /* XXX - probably should panic here */ brelse(bp); - return (-1); + return (0); } + cgp = (struct cg *)bp->b_data; if (!cg_chkmagic(cgp)) { - /* XXX - probably should panic here */ brelse(bp); - return (-1); + return (0); } + bno = dtogd(fs, bno); if (size == fs->fs_bsize) { free = ffs_isblock(fs, cg_blksfree(cgp), fragstoblks(fs, bno)); |