summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1996-03-29 06:39:39 +0000
committerdg <dg@FreeBSD.org>1996-03-29 06:39:39 +0000
commitbcaf3321ab5fccd7bef348ed0d5e7572bcc65432 (patch)
treee26c7a79d995695024194a732949268e204c2a13
parent4d625bffc5619d5b193f538fd270e83d908be75e (diff)
downloadFreeBSD-src-bcaf3321ab5fccd7bef348ed0d5e7572bcc65432.zip
FreeBSD-src-bcaf3321ab5fccd7bef348ed0d5e7572bcc65432.tar.gz
Change v_usecount & v_writecount from a short to an int. As shorts they
can and will overflow on large machines - especially on machines with filesystems with lots of files (like netnews servers), and the result is a "free vnode isn't" panic or worse. This fixes one of the causes of these panics that I've been experiancing on wcarchive.
-rw-r--r--sys/sys/vnode.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h
index 8c95e6d..ff1a687 100644
--- a/sys/sys/vnode.h
+++ b/sys/sys/vnode.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)vnode.h 8.7 (Berkeley) 2/4/94
- * $Id: vnode.h,v 1.30 1996/01/30 23:01:34 mpp Exp $
+ * $Id: vnode.h,v 1.31 1996/03/03 18:51:33 peter Exp $
*/
#ifndef _SYS_VNODE_H_
@@ -71,9 +71,9 @@ typedef int vop_t __P((void *));
struct vnode {
u_long v_flag; /* vnode flags (see below) */
- short v_usecount; /* reference count of users */
- short v_writecount; /* reference count of writers */
- long v_holdcnt; /* page & buffer references */
+ int v_usecount; /* reference count of users */
+ int v_writecount; /* reference count of writers */
+ int v_holdcnt; /* page & buffer references */
daddr_t v_lastr; /* last read (read-ahead) */
u_long v_id; /* capability identifier */
struct mount *v_mount; /* ptr to vfs we are in */
OpenPOWER on IntegriCloud