summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorPeter Telford <Peter.Telford@Sun.COM>2008-10-30 08:31:34 -0700
committerPeter Telford <Peter.Telford@Sun.COM>2008-10-30 08:31:34 -0700
commitadbe22e173705861cc4e68ec0cdb258dbb73f9eb (patch)
tree9239c449eac63dc1404cb0e67fecbfe127304b33 /usr/src
parent22b3cecc0923da281676ec7c4e35e5e03beef2bb (diff)
downloadillumos-gate-adbe22e173705861cc4e68ec0cdb258dbb73f9eb.tar.gz
6703850 VMODSORT functionality in pvn_vplist_dirty fails if given offset exceeds highest clean page offset
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/vm/vm_pvn.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/usr/src/uts/common/vm/vm_pvn.c b/usr/src/uts/common/vm/vm_pvn.c
index b7f4249f4c..186235767d 100644
--- a/usr/src/uts/common/vm/vm_pvn.c
+++ b/usr/src/uts/common/vm/vm_pvn.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -36,8 +36,6 @@
* contributors.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* VM - paged vnode.
*
@@ -840,16 +838,6 @@ pvn_vplist_dirty(
ASSERT(pp->p_vnode == vp);
/*
- * Skip this page if the offset is out of the desired range.
- * Just move the marker and continue.
- */
- if (pp->p_offset < off) {
- page_vpsub(&vp->v_pages, mark);
- page_vpadd(where_to_move, mark);
- continue;
- }
-
- /*
* If just flushing dirty pages to disk and this vnode
* is using a sorted list of pages, we can stop processing
* as soon as we find an unmodified page. Since all the
@@ -901,6 +889,16 @@ pvn_vplist_dirty(
}
/*
+ * Skip this page if the offset is out of the desired range.
+ * Just move the marker and continue.
+ */
+ if (pp->p_offset < off) {
+ page_vpsub(&vp->v_pages, mark);
+ page_vpadd(where_to_move, mark);
+ continue;
+ }
+
+ /*
* If we are supposed to invalidate or free this
* page, then we need an exclusive lock.
*/