Page MenuHomeFreeBSD

D50568.1788997937.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D50568.1788997937.diff

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);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 9, 11:52 PM (10 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29530251
Default Alt Text
D50568.1788997937.diff (2 KB)

Event Timeline