From f3ecb3c94cf01623ed4682924ee24ea086c3db88 Mon Sep 17 00:00:00 2001 From: kib Date: Tue, 17 Jan 2012 06:57:55 +0000 Subject: [PATCH 101/175] MFC r229934: Change the type of the paging_in_progress refcounter from u_short to u_int. With the auto-sized buffer cache on the modern machines, UFS metadata can generate more the 65535 pages belonging to the buffers undergoing i/o, overflowing the counter. To keep the layout of other fields of the struct vm_object intact on stable/9, put enlarged paging_in_progress at the end of the structure, and put a placeholder in the place of old pip counter. git-svn-id: http://svn.freebsd.org/base/stable/9@230258 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f (cherry picked from commit ca1773e3751b2f7797d7053a78aacdefcfaaa3e9) Signed-off-by: Xin Li --- sys/vm/vm_object.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index 0a17693..413b4ab 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -96,7 +96,7 @@ struct vm_object { objtype_t type; /* type of pager */ u_short flags; /* see below */ u_short pg_color; /* (c) color of first page in obj */ - u_short paging_in_progress; /* Paging (in or out) so don't collapse or destroy */ + u_short pad1; /* Old pip counter */ int resident_page_count; /* number of resident pages */ struct vm_object *backing_object; /* object that I'm a shadow of */ vm_ooffset_t backing_object_offset;/* Offset in backing object */ @@ -146,6 +146,7 @@ struct vm_object { } un_pager; struct ucred *cred; vm_ooffset_t charge; + u_int paging_in_progress; /* Paging (in or out) so don't collapse or destroy */ }; /* -- 1.7.9.4