git: 9b2226eef29a - stable/14 - SU+J: all writes to SU journal must be exempt from runningbufspace throttling
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 16 Nov 2024 01:41:24 UTC
The branch stable/14 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=9b2226eef29aa6ada92203ead672f124b911df5f
commit 9b2226eef29aa6ada92203ead672f124b911df5f
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-11-12 06:29:23 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-11-16 01:07:33 +0000
SU+J: all writes to SU journal must be exempt from runningbufspace throttling
PR: 282449
(cherry picked from commit 46f02c4282ff76b66579c83be53ef441ea522536)
---
sys/ufs/ffs/ffs_softdep.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index 3729d67d1eb2..fa2b0bf24366 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -3634,6 +3634,7 @@ softdep_process_journal(struct mount *mp,
int cnt;
int off;
int devbsize;
+ int savef;
ump = VFSTOUFS(mp);
if (ump->um_softdep == NULL || ump->um_softdep->sd_jblocks == NULL)
@@ -3645,6 +3646,8 @@ softdep_process_journal(struct mount *mp,
fs = ump->um_fs;
jblocks = ump->softdep_jblocks;
devbsize = ump->um_devvp->v_bufobj.bo_bsize;
+ savef = curthread_pflags_set(TDP_NORUNNINGBUF);
+
/*
* We write anywhere between a disk block and fs block. The upper
* bound is picked to prevent buffer cache fragmentation and limit
@@ -3863,12 +3866,15 @@ softdep_process_journal(struct mount *mp,
*/
if (flags == 0 && jblocks->jb_suspended) {
if (journal_unsuspend(ump))
- return;
+ goto out;
FREE_LOCK(ump);
VFS_SYNC(mp, MNT_NOWAIT);
ffs_sbupdate(ump, MNT_WAIT, 0);
ACQUIRE_LOCK(ump);
}
+
+out:
+ curthread_pflags_restore(savef);
}
/*