Module Name: src
Committed By: snj
Date: Thu May 7 00:24:19 UTC 2009
Modified Files:
src/sys/ufs/ffs [netbsd-5-0]: ffs_alloc.c
Log Message:
Pull up following revision(s) (requested by sborrill in ticket #726):
sys/ufs/ffs/ffs_alloc.c: revision 1.123 via patch
Fix random 'filesystem full' messages by trapping a couple of 32-bit
overflow areas missed in rev 1.110 and switching cgbase().
Kudos to rump_ffs!
To generate a diff of this commit:
cvs rdiff -u -r1.113.4.1 -r1.113.4.1.2.1 src/sys/ufs/ffs/ffs_alloc.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/ffs/ffs_alloc.c
diff -u src/sys/ufs/ffs/ffs_alloc.c:1.113.4.1 src/sys/ufs/ffs/ffs_alloc.c:1.113.4.1.2.1
--- src/sys/ufs/ffs/ffs_alloc.c:1.113.4.1 Tue Feb 24 04:13:35 2009
+++ src/sys/ufs/ffs/ffs_alloc.c Thu May 7 00:24:19 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_alloc.c,v 1.113.4.1 2009/02/24 04:13:35 snj Exp $ */
+/* $NetBSD: ffs_alloc.c,v 1.113.4.1.2.1 2009/05/07 00:24:19 snj Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_alloc.c,v 1.113.4.1 2009/02/24 04:13:35 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_alloc.c,v 1.113.4.1.2.1 2009/05/07 00:24:19 snj Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -1369,7 +1369,7 @@
ufs_add32(cgp->cg_frsum[allocsiz], -1, needswap);
if (frags != allocsiz)
ufs_add32(cgp->cg_frsum[allocsiz - frags], 1, needswap);
- blkno = cg * fs->fs_fpg + bno;
+ blkno = cgbase(fs, cg) + bno;
ACTIVECG_CLR(fs, cg);
mutex_exit(&ump->um_lock);
if (DOINGSOFTDEP(ITOV(ip)))
@@ -1573,7 +1573,7 @@
got - run + i))
panic("ffs_clusteralloc: map mismatch");
#endif
- bno = cg * fs->fs_fpg + blkstofrags(fs, got - run + 1);
+ bno = cgbase(fs, cg) + blkstofrags(fs, got - run + 1);
if (dtog(fs, bno) != cg)
panic("ffs_clusteralloc: allocated out of group");
len = blkstofrags(fs, len);