diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2020-03-30 21:44:30 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2020-03-30 21:44:30 +0000 |
commit | abfdf767918ccfa3648181b3770a9fe0844b0ea6 (patch) | |
tree | dd5a37a1fd0e9a9f96b54cf4b483b8e5695b38ed /sys/vm/vnode_pager.c | |
parent | e42b09643997affce935b2197814381c7ee856c1 (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.c | 8 |
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); } /* |