Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Feb 2021 07:59:00 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: b1ed1a515137 - stable/13 - softdep_request_cleanup: wait for softdep_request_clean_flush() to pass
Message-ID:  <202102240759.11O7x0b5046753@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=b1ed1a515137fb9cff3037a64c8e4edf7ff9b03f

commit b1ed1a515137fb9cff3037a64c8e4edf7ff9b03f
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-02-03 23:58:05 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2021-02-24 07:47:41 +0000

    softdep_request_cleanup: wait for softdep_request_clean_flush() to pass
    
    (cherry picked from commit 2011b44fa3f2b2bd5a24be01094420cce9144b2d)
---
 sys/ufs/ffs/ffs_softdep.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index 8c3ae9dd95fc..8c52139687f9 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -13847,6 +13847,7 @@ retry:
 			failed_vnode = softdep_request_cleanup_flush(mp, ump);
 			ACQUIRE_LOCK(ump);
 			ump->um_softdep->sd_flags &= ~FLUSH_RC_ACTIVE;
+			wakeup(&ump->um_softdep->sd_flags);
 			FREE_LOCK(ump);
 			if (ump->softdep_on_worklist > 0) {
 				stat_cleanup_retries += 1;
@@ -13854,6 +13855,11 @@ retry:
 					goto retry;
 			}
 		} else {
+			while ((ump->um_softdep->sd_flags &
+			    FLUSH_RC_ACTIVE) != 0) {
+				msleep(&ump->um_softdep->sd_flags,
+				    LOCK_PTR(ump), PVM, "ffsrca", hz);
+			}
 			FREE_LOCK(ump);
 			error = 0;
 		}



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