diff options
author | kib <kib@FreeBSD.org> | 2012-08-04 18:16:43 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-08-04 18:16:43 +0000 |
commit | 4259905d3171a4cdd087436ff1c17eed74830b60 (patch) | |
tree | 6ac153a747b185932191fda117e5d5ee749c7fd6 /sys/nfsclient | |
parent | 92640c3632022e41b9cbf19c91dc943056036413 (diff) | |
download | FreeBSD-src-4259905d3171a4cdd087436ff1c17eed74830b60.zip FreeBSD-src-4259905d3171a4cdd087436ff1c17eed74830b60.tar.gz |
Reduce code duplication and exposure of direct access to struct
vm_page oflags by providing helper function
vm_page_readahead_finish(), which handles completed reads for pages
with indexes other then the requested one, for VOP_GETPAGES().
Reviewed by: alc
MFC after: 1 week
Diffstat (limited to 'sys/nfsclient')
-rw-r--r-- | sys/nfsclient/nfs_bio.c | 32 |
1 files changed, 2 insertions, 30 deletions
diff --git a/sys/nfsclient/nfs_bio.c b/sys/nfsclient/nfs_bio.c index 2ffd822..568f990 100644 --- a/sys/nfsclient/nfs_bio.c +++ b/sys/nfsclient/nfs_bio.c @@ -217,36 +217,8 @@ nfs_getpages(struct vop_getpages_args *ap) */ ; } - if (i != ap->a_reqpage) { - /* - * Whether or not to leave the page activated is up in - * the air, but we should put the page on a page queue - * somewhere (it already is in the object). Result: - * It appears that emperical results show that - * deactivating pages is best. - */ - - /* - * Just in case someone was asking for this page we - * now tell them that it is ok to use. - */ - if (!error) { - if (m->oflags & VPO_WANTED) { - vm_page_lock(m); - vm_page_activate(m); - vm_page_unlock(m); - } else { - vm_page_lock(m); - vm_page_deactivate(m); - vm_page_unlock(m); - } - vm_page_wakeup(m); - } else { - vm_page_lock(m); - vm_page_free(m); - vm_page_unlock(m); - } - } + if (i != ap->a_reqpage) + vm_page_readahead_finish(m, error); } VM_OBJECT_UNLOCK(object); return (0); |