Index: sys/vm/vm_object.c =================================================================== --- sys/vm/vm_object.c +++ sys/vm/vm_object.c @@ -1020,8 +1020,7 @@ } } - vm_pageout_flush(ma, count, pagerflags, 0, &runlen, eio); - return (runlen); + return (vm_pageout_flush(ma, count, pagerflags, eio)); } /* Index: sys/vm/vm_pageout.h =================================================================== --- sys/vm/vm_pageout.h +++ sys/vm/vm_pageout.h @@ -100,7 +100,7 @@ void vm_wait_min(void); void vm_wait_severe(void); -int vm_pageout_flush(vm_page_t *, int, int, int, int *, boolean_t *); +int vm_pageout_flush(vm_page_t *, int count, int flags, boolean_t *eio); void vm_pageout_oom(int shortage); #endif /* _KERNEL */ Index: sys/vm/vm_pageout.c =================================================================== --- sys/vm/vm_pageout.c +++ sys/vm/vm_pageout.c @@ -438,7 +438,7 @@ } return (vm_pageout_flush(&mc[page_base], pageout_count, - VM_PAGER_PUT_NOREUSE, 0, NULL, NULL)); + VM_PAGER_PUT_NOREUSE, NULL)); } /* @@ -450,19 +450,19 @@ * the parent to do more sophisticated things we may have to change * the ordering. * - * Returned runlen is the count of pages between mreq and first - * page after mreq with status VM_PAGER_AGAIN. - * *eio is set to TRUE if pager returned VM_PAGER_ERROR or VM_PAGER_FAIL - * for any page in runlen set. + * If eio is not NULL, returns the count of pages between 0 and first page + * with status VM_PAGER_AGAIN. *eio is set to TRUE if pager returned + * VM_PAGER_ERROR or VM_PAGER_FAIL for any page in that set. + * + * Otherwise, returnsthe number of paged-out pages. */ int -vm_pageout_flush(vm_page_t *mc, int count, int flags, int mreq, int *prunlen, - boolean_t *eio) +vm_pageout_flush(vm_page_t *mc, int count, int flags, boolean_t *eio) { vm_object_t object = mc[0]->object; int pageout_status[count]; int numpagedout = 0; - int i, runlen; + int i; VM_OBJECT_ASSERT_WLOCKED(object); @@ -488,7 +488,6 @@ vm_pager_put_pages(object, mc, count, flags, pageout_status); - runlen = count - mreq; if (eio != NULL) *eio = FALSE; for (i = 0; i < count; i++) { @@ -540,12 +539,11 @@ numpagedout++; } else vm_page_activate(mt); - if (eio != NULL && i >= mreq && i - mreq < runlen) + if (eio != NULL) *eio = TRUE; break; case VM_PAGER_AGAIN: - if (i >= mreq && i - mreq < runlen) - runlen = i - mreq; + count = i; break; } @@ -560,8 +558,8 @@ vm_page_sunbusy(mt); } } - if (prunlen != NULL) - *prunlen = runlen; + if (eio != NULL) + return (count); return (numpagedout); }