diff options
author | glebius <glebius@FreeBSD.org> | 2015-03-17 19:19:19 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2015-03-17 19:19:19 +0000 |
commit | 398be53682fc65ee88ba001f09d5c90d449e31ba (patch) | |
tree | e16f4ec47ab3db6384f3ca6748283722c2e8d5d2 /sys/fs/nfsclient | |
parent | 6e4dc744037cacaa56accef5bd0a5dbb3a5ce1b0 (diff) | |
download | FreeBSD-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.c | 6 |
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); } |