summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fs/tmpfs/tmpfs_vnops.c8
-rw-r--r--sys/kern/uipc_syscalls.c11
2 files changed, 5 insertions, 14 deletions
diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c
index cee8d8f..d867612 100644
--- a/sys/fs/tmpfs/tmpfs_vnops.c
+++ b/sys/fs/tmpfs/tmpfs_vnops.c
@@ -448,10 +448,8 @@ tmpfs_nocacheread(vm_object_t tobj, vm_pindex_t idx,
VM_OBJECT_WLOCK(tobj);
/*
- * The kern_sendfile() code calls vn_rdwr() with the page
- * soft-busied. Ignore the soft-busy state here. Parallel
- * reads of the page content from disk are prevented by
- * VPO_BUSY.
+ * Parallel reads of the page content from disk are prevented
+ * by VPO_BUSY.
*
* Although the tmpfs vnode lock is held here, it is
* nonetheless safe to sleep waiting for a free page. The
@@ -460,7 +458,7 @@ tmpfs_nocacheread(vm_object_t tobj, vm_pindex_t idx,
* type object.
*/
m = vm_page_grab(tobj, idx, VM_ALLOC_NORMAL | VM_ALLOC_RETRY |
- VM_ALLOC_IGN_SBUSY | VM_ALLOC_NOBUSY);
+ VM_ALLOC_NOBUSY);
if (m->valid != VM_PAGE_BITS_ALL) {
vm_page_busy(m);
if (vm_pager_has_page(tobj, idx, NULL, NULL)) {
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index 454909e..c35ef16 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -2246,11 +2246,6 @@ retry_space:
ssize_t resid;
int readahead = sfreadahead * MAXBSIZE;
- /*
- * Ensure that our page is still around
- * when the I/O completes.
- */
- vm_page_io_start(pg);
VM_OBJECT_WUNLOCK(obj);
/*
@@ -2264,11 +2259,9 @@ retry_space:
trunc_page(off), UIO_NOCOPY, IO_NODELOCKED |
IO_VMIO | ((readahead / bsize) << IO_SEQSHIFT),
td->td_ucred, NOCRED, &resid, td);
- VM_OBJECT_WLOCK(obj);
- vm_page_io_finish(pg);
- if (!error)
- VM_OBJECT_WUNLOCK(obj);
SFSTAT_INC(sf_iocnt);
+ if (error)
+ VM_OBJECT_WLOCK(obj);
}
if (error) {
vm_page_lock(pg);
OpenPOWER on IntegriCloud