Page MenuHomeFreeBSD

D49391.1794693201.diff
No OneTemporary

Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None

D49391.1794693201.diff

Index: sys/vm/vm_page.c
===================================================================
--- sys/vm/vm_page.c
+++ sys/vm/vm_page.c
@@ -4757,11 +4757,7 @@
* vm_page_grab_sleep
*
* Sleep for busy according to VM_ALLOC_ parameters. Returns true
- * if the caller should retry and false otherwise.
- *
- * If the object is locked on entry the object will be unlocked with
- * false returns and still locked but possibly having been dropped
- * with true returns.
+ * if allocflags permits waiting and false otherwise.
*/
static bool
vm_page_grab_sleep(vm_object_t object, vm_page_t m, vm_pindex_t pindex,
@@ -4781,8 +4777,6 @@
if (_vm_page_busy_sleep(object, m, pindex, wmesg, allocflags, locked) &&
locked)
VM_OBJECT_WLOCK(object);
- if ((allocflags & VM_ALLOC_WAITFAIL) != 0)
- return (false);
return (true);
}
@@ -4801,6 +4795,9 @@
KASSERT((allocflags & VM_ALLOC_SBUSY) == 0 ||
(allocflags & VM_ALLOC_IGN_SBUSY) != 0,
("vm_page_grab*: VM_ALLOC_SBUSY/VM_ALLOC_IGN_SBUSY mismatch"));
+
+ KASSERT((allocflags & VM_ALLOC_WAITFAIL) == 0,
+ ("vm_page_grab_valid_unlocked: Invalid waitfail flag"));
}
/*
@@ -4812,8 +4809,8 @@
int pflags;
pflags = allocflags &
- ~(VM_ALLOC_NOWAIT | VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL |
- VM_ALLOC_NOBUSY | VM_ALLOC_IGN_SBUSY);
+ ~(VM_ALLOC_NOWAIT | VM_ALLOC_WAITOK | VM_ALLOC_NOBUSY |
+ VM_ALLOC_IGN_SBUSY);
if ((allocflags & VM_ALLOC_NOWAIT) == 0)
pflags |= VM_ALLOC_WAITFAIL;
if ((allocflags & VM_ALLOC_IGN_SBUSY) != 0)
@@ -4855,7 +4852,7 @@
return (NULL);
m = vm_page_alloc(object, pindex, vm_page_grab_pflags(allocflags));
if (m == NULL) {
- if ((allocflags & (VM_ALLOC_NOWAIT | VM_ALLOC_WAITFAIL)) != 0)
+ if ((allocflags & VM_ALLOC_NOWAIT) != 0)
return (NULL);
goto retrylookup;
}
@@ -4954,11 +4951,8 @@
vm_page_t ma[VM_INITIAL_PAGEIN];
int after, i, pflags, rv;
- KASSERT((allocflags & VM_ALLOC_SBUSY) == 0 ||
- (allocflags & VM_ALLOC_IGN_SBUSY) != 0,
- ("vm_page_grab_valid: VM_ALLOC_SBUSY/VM_ALLOC_IGN_SBUSY mismatch"));
- KASSERT((allocflags &
- (VM_ALLOC_NOWAIT | VM_ALLOC_WAITFAIL | VM_ALLOC_ZERO)) == 0,
+ vm_page_grab_check(allocflags);
+ KASSERT((allocflags & (VM_ALLOC_NOWAIT | VM_ALLOC_ZERO)) == 0,
("vm_page_grab_valid: Invalid flags 0x%X", allocflags));
VM_OBJECT_ASSERT_WLOCKED(object);
pflags = allocflags & ~(VM_ALLOC_NOBUSY | VM_ALLOC_SBUSY |
@@ -5116,12 +5110,8 @@
int flags;
int error;
- KASSERT((allocflags & VM_ALLOC_SBUSY) == 0 ||
- (allocflags & VM_ALLOC_IGN_SBUSY) != 0,
- ("vm_page_grab_valid_unlocked: VM_ALLOC_SBUSY/VM_ALLOC_IGN_SBUSY "
- "mismatch"));
- KASSERT((allocflags &
- (VM_ALLOC_NOWAIT | VM_ALLOC_WAITFAIL | VM_ALLOC_ZERO)) == 0,
+ vm_page_grab_check(allocflags);
+ KASSERT((allocflags & (VM_ALLOC_NOWAIT | VM_ALLOC_ZERO)) == 0,
("vm_page_grab_valid_unlocked: Invalid flags 0x%X", allocflags));
/*
@@ -5218,8 +5208,7 @@
m = vm_page_alloc_after(object, pindex + i,
pflags | VM_ALLOC_COUNT(count - i), mpred);
if (m == NULL) {
- if ((allocflags & (VM_ALLOC_NOWAIT |
- VM_ALLOC_WAITFAIL)) != 0)
+ if ((allocflags & VM_ALLOC_NOWAIT) != 0)
break;
goto retrylookup;
}

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 14, 9:53 PM (14 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41732681
Default Alt Text
D49391.1794693201.diff (3 KB)

Event Timeline