diff options
-rw-r--r-- | sys/dev/md/md.c | 4 | ||||
-rw-r--r-- | sys/kern/uipc_shm.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index 8ae51d1..b1d579f 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -895,8 +895,10 @@ mdstart_swap(struct md_s *sc, struct bio *bp) else vm_page_activate(m); vm_page_unlock(m); - if (bp->bio_cmd == BIO_WRITE) + if (bp->bio_cmd == BIO_WRITE) { vm_page_dirty(m); + vm_pager_page_unswapped(m); + } /* Actions on further pages start at offset 0 */ p += PAGE_SIZE - offs; diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c index cf00ff4..024640b 100644 --- a/sys/kern/uipc_shm.c +++ b/sys/kern/uipc_shm.c @@ -199,6 +199,7 @@ uiomove_object_page(vm_object_t obj, size_t len, struct uio *uio) if (uio->uio_rw == UIO_WRITE && error == 0) { VM_OBJECT_WLOCK(obj); vm_page_dirty(m); + vm_pager_page_unswapped(m); VM_OBJECT_WUNLOCK(obj); } vm_page_lock(m); |