Page MenuHomeFreeBSD

D49340.1786505219.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D49340.1786505219.diff

Index: sys/vm/swap_pager.c
===================================================================
--- sys/vm/swap_pager.c
+++ sys/vm/swap_pager.c
@@ -568,7 +568,6 @@
static void
swblk_iter_init_only(struct pctrie_iter *blks, vm_object_t object)
{
- VM_OBJECT_ASSERT_LOCKED(object);
MPASS((object->flags & OBJ_SWAP) != 0);
pctrie_iter_init(blks, &object->un_pager.swp.swp_blks);
}
@@ -578,6 +577,7 @@
swblk_iter_init(struct pctrie_iter *blks, vm_object_t object,
vm_pindex_t pindex)
{
+ VM_OBJECT_ASSERT_LOCKED(object);
swblk_iter_init_only(blks, object);
return (swblk_iter_lookup_ge(blks, pindex));
}
@@ -1117,8 +1117,8 @@
int n;
swp_pager_init_freerange(&range);
- VM_OBJECT_WLOCK(object);
swblk_iter_init_only(&blks, object);
+ VM_OBJECT_WLOCK(object);
for (i = 0; i < size; i += n) {
n = MIN(size - i, INT_MAX);
blk = swp_pager_getswapspace(&n);
@@ -1264,6 +1264,7 @@
{
struct pctrie_iter blks;
+ VM_OBJECT_ASSERT_LOCKED(object);
swblk_iter_init_only(&blks, object);
return (swp_pager_haspage_iter(&blks, pindex, before, after));
}
@@ -1531,8 +1532,8 @@
{
struct pctrie_iter blks;
- VM_OBJECT_WLOCK(object);
swblk_iter_init_only(&blks, object);
+ VM_OBJECT_WLOCK(object);
return (swap_pager_getpages_locked(&blks, object, ma, count, rbehind,
rahead));
}
@@ -1636,8 +1637,8 @@
rtvals[i + j] = VM_PAGER_FAIL;
continue;
}
- VM_OBJECT_WLOCK(object);
swblk_iter_init_only(&blks, object);
+ VM_OBJECT_WLOCK(object);
for (j = 0; j < n; ++j) {
mreq = ma[i + j];
vm_page_aflag_clear(mreq, PGA_SWAP_FREE);
@@ -2214,8 +2215,8 @@
pause("swzonxb", 10);
} else
uma_zwait(swblk_zone);
- VM_OBJECT_WLOCK(object);
sb = swblk_iter_reinit(blks, object, pindex);
+ VM_OBJECT_WLOCK(object);
if (sb != NULL)
/*
* Somebody swapped out a nearby page,
@@ -2246,8 +2247,8 @@
pause("swzonxp", 10);
} else
uma_zwait(swpctrie_zone);
- VM_OBJECT_WLOCK(object);
sb1 = swblk_iter_reinit(blks, object, pindex);
+ VM_OBJECT_WLOCK(object);
if (sb1 != NULL) {
uma_zfree(swblk_zone, sb);
sb = sb1;

File Metadata

Mime Type
text/plain
Expires
Wed, Aug 12, 3:26 AM (16 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29397985
Default Alt Text
D49340.1786505219.diff (2 KB)

Event Timeline