Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Mar 2023 00:59:22 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 464c507f5daa - stable/13 - vnode_pager_input: return runningbufspace back
Message-ID:  <202303310059.32V0xMWA001664@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202303310059.32V0xMWA001664>