summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpedro <pedro@openbsd.org>2004-10-25 23:36:50 +0000
committerpedro <pedro@openbsd.org>2004-10-25 23:36:50 +0000
commit6c1f4a27bc729d0a7dad4aa3e319b50b3664a4bd (patch)
treef0e74399ccd3ad98c69035f58b05db1b985212d5
parentadd EHCI_QTD_SET_STATUS (diff)
downloadwireguard-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.c10
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));