aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vnode_pager.c
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2020-03-30 21:44:30 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2020-03-30 21:44:30 +0000
commitabfdf767918ccfa3648181b3770a9fe0844b0ea6 (patch)
treedd5a37a1fd0e9a9f96b54cf4b483b8e5695b38ed /sys/vm/vnode_pager.c
parente42b09643997affce935b2197814381c7ee856c1 (diff)
VOP_GETPAGES_ASYNC(): consistently call iodone() callback in case of error.
Reviewed by: glebius, markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24038
Notes
Notes: svn path=/head/; revision=359466
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r--sys/vm/vnode_pager.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index 7c8bcc9d239c..0f3ea7300654 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -776,9 +776,13 @@ vnode_pager_local_getpages(struct vop_getpages_args *ap)
int
vnode_pager_local_getpages_async(struct vop_getpages_async_args *ap)
{
+ int error;
- return (vnode_pager_generic_getpages(ap->a_vp, ap->a_m, ap->a_count,
- ap->a_rbehind, ap->a_rahead, ap->a_iodone, ap->a_arg));
+ error = vnode_pager_generic_getpages(ap->a_vp, ap->a_m, ap->a_count,
+ ap->a_rbehind, ap->a_rahead, ap->a_iodone, ap->a_arg);
+ if (error != 0 && ap->a_iodone != NULL)
+ ap->a_iodone(ap->a_arg, ap->a_m, ap->a_count, error);
+ return (error);
}
/*