Module Name: src Committed By: drochner Date: Fri Sep 10 10:14:56 UTC 2010
Modified Files: src/sys/kern: vfs_wapbl.c Log Message: fix two bugs reported by Ryo Shimizu: -wrong initialization reported in a followup to PR bin/43336 (looks harmless because it applies to zero-initialized memory, so LIST_INIT() is a no-op) -wrong loop count in reply misses a hash bucket (PR kern/43827) (this was introduced by a post-netbsd-5 change, so it isn't related to the PR above) To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 src/sys/kern/vfs_wapbl.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/kern/vfs_wapbl.c diff -u src/sys/kern/vfs_wapbl.c:1.36 src/sys/kern/vfs_wapbl.c:1.37 --- src/sys/kern/vfs_wapbl.c:1.36 Wed Apr 21 19:50:57 2010 +++ src/sys/kern/vfs_wapbl.c Fri Sep 10 10:14:55 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_wapbl.c,v 1.36 2010/04/21 19:50:57 pooka Exp $ */ +/* $NetBSD: vfs_wapbl.c,v 1.37 2010/09/10 10:14:55 drochner Exp $ */ /*- * Copyright (c) 2003, 2008, 2009 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ #define WAPBL_INTERNAL #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_wapbl.c,v 1.36 2010/04/21 19:50:57 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_wapbl.c,v 1.37 2010/09/10 10:14:55 drochner Exp $"); #include <sys/param.h> #include <sys/bitops.h> @@ -2095,7 +2095,7 @@ for (hashsize = 1; hashsize < size; hashsize <<= 1) continue; wr->wr_blkhash = wapbl_malloc(hashsize * sizeof(*wr->wr_blkhash)); - for (i = 0; i < wr->wr_blkhashmask; i++) + for (i = 0; i < hashsize; i++) LIST_INIT(&wr->wr_blkhash[i]); wr->wr_blkhashmask = hashsize - 1; } @@ -2648,7 +2648,7 @@ scratch = wapbl_malloc(MAXBSIZE); - for (i = 0; i < wr->wr_blkhashmask; ++i) { + for (i = 0; i <= wr->wr_blkhashmask; ++i) { LIST_FOREACH(wb, &wr->wr_blkhash[i], wb_hash) { off = wb->wb_off; error = wapbl_circ_read(wr, scratch, fsblklen, &off);