git: 464c507f5daa - stable/13 - vnode_pager_input: return runningbufspace back
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 31 Mar 2023 00:59:22 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=464c507f5daa28512b934f71ccb8e1bf6af95071 commit 464c507f5daa28512b934f71ccb8e1bf6af95071 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-03-24 21:12:21 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-03-31 00:47:52 +0000 vnode_pager_input: return runningbufspace back (cherry picked from commit 28f957b8b3a22086927451fee89789fdf596260b) --- sys/vm/vnode_pager.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 08927b5671f6..68e2916daad9 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -568,6 +568,13 @@ vnode_pager_addr(struct vnode *vp, vm_ooffset_t address, daddr_t *rtaddress, return (err); } +static void +vnode_pager_input_bdone(struct buf *bp) +{ + runningbufwakeup(bp); + bdone(bp); +} + /* * small block filesystem vnode pager input */ @@ -614,7 +621,7 @@ vnode_pager_input_smlfs(vm_object_t object, vm_page_t m) /* build a minimal buffer header */ bp->b_iocmd = BIO_READ; - bp->b_iodone = bdone; + bp->b_iodone = vnode_pager_input_bdone; KASSERT(bp->b_rcred == NOCRED, ("leaking read ucred")); KASSERT(bp->b_wcred == NOCRED, ("leaking write ucred")); bp->b_rcred = crhold(curthread->td_ucred); @@ -1132,6 +1139,8 @@ vnode_pager_generic_getpages_done(struct buf *bp) error = (bp->b_ioflags & BIO_ERROR) != 0 ? bp->b_error : 0; object = bp->b_vp->v_object; + runningbufwakeup(bp); + if (error == 0 && bp->b_bcount != bp->b_npages * PAGE_SIZE) { if (!buf_mapped(bp)) { bp->b_data = bp->b_kvabase;