summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfsclient
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2015-03-17 19:19:19 +0000
committerglebius <glebius@FreeBSD.org>2015-03-17 19:19:19 +0000
commit398be53682fc65ee88ba001f09d5c90d449e31ba (patch)
treee16f4ec47ab3db6384f3ca6748283722c2e8d5d2 /sys/fs/nfsclient
parent6e4dc744037cacaa56accef5bd0a5dbb3a5ce1b0 (diff)
downloadFreeBSD-src-398be53682fc65ee88ba001f09d5c90d449e31ba.zip
FreeBSD-src-398be53682fc65ee88ba001f09d5c90d449e31ba.tar.gz
o Enhance vm_pager_free_nonreq() function:
- Allow to call the function with vm object lock held. - Allow to specify reqpage that doesn't match any page in the region, meaning freeing all pages. o Utilize the new function in couple more places in vnode pager. Reviewed by: alc, kib Sponsored by: Netflix Sponsored by: Nginx, Inc.
Diffstat (limited to 'sys/fs/nfsclient')
-rw-r--r--sys/fs/nfsclient/nfs_clbio.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio.c
index 4c8c2dc..ea42537 100644
--- a/sys/fs/nfsclient/nfs_clbio.c
+++ b/sys/fs/nfsclient/nfs_clbio.c
@@ -140,7 +140,8 @@ ncl_getpages(struct vop_getpages_args *ap)
* can only occur at the file EOF.
*/
if (pages[ap->a_reqpage]->valid != 0) {
- vm_pager_free_nonreq(object, pages, ap->a_reqpage, npages);
+ vm_pager_free_nonreq(object, pages, ap->a_reqpage, npages,
+ FALSE);
return (VM_PAGER_OK);
}
@@ -172,7 +173,8 @@ ncl_getpages(struct vop_getpages_args *ap)
if (error && (uio.uio_resid == count)) {
ncl_printf("nfs_getpages: error %d\n", error);
- vm_pager_free_nonreq(object, pages, ap->a_reqpage, npages);
+ vm_pager_free_nonreq(object, pages, ap->a_reqpage, npages,
+ FALSE);
return (VM_PAGER_ERROR);
}
OpenPOWER on IntegriCloud