git: ecb63094dce6 - stable/13 - ffs_softdep.c: add journal_check_space() helper
Konstantin Belousov
kib at FreeBSD.org
Wed Jul 7 11:11:06 UTC 2021
The branch stable/13 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=ecb63094dce6c4a77c19eba046e61ccd4094381b
commit ecb63094dce6c4a77c19eba046e61ccd4094381b
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-06-15 10:23:44 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-07-07 10:50:43 +0000
ffs_softdep.c: add journal_check_space() helper
(cherry picked from commit 2126f103e0434db6ca34f0a5167bf5f03d4f02ad)
---
sys/ufs/ffs/ffs_softdep.c | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index f6dd5c776611..fe3af651632e 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -3199,6 +3199,19 @@ journal_unsuspend(struct ufsmount *ump)
return (0);
}
+static void
+journal_check_space(ump)
+ struct ufsmount *ump;
+{
+ LOCK_OWNED(ump);
+
+ if (journal_space(ump, 0) == 0) {
+ softdep_speedup(ump);
+ if (journal_space(ump, 1) == 0)
+ journal_suspend(ump);
+ }
+}
+
/*
* Called before any allocation function to be certain that there is
* sufficient space in the journal prior to creating any new records.
@@ -3249,11 +3262,7 @@ softdep_prealloc(vp, waitok)
ACQUIRE_LOCK(ump);
process_removes(vp);
process_truncates(vp);
- if (journal_space(ump, 0) == 0) {
- softdep_speedup(ump);
- if (journal_space(ump, 1) == 0)
- journal_suspend(ump);
- }
+ journal_check_space(ump);
FREE_LOCK(ump);
return (0);
@@ -3340,11 +3349,7 @@ softdep_prerename(fdvp, fvp, tdvp, tvp)
ACQUIRE_LOCK(ump);
softdep_speedup(ump);
process_worklist_item(UFSTOVFS(ump), 2, LK_NOWAIT);
- if (journal_space(ump, 0) == 0) {
- softdep_speedup(ump);
- if (journal_space(ump, 1) == 0)
- journal_suspend(ump);
- }
+ journal_check_space(ump);
FREE_LOCK(ump);
return (ERELOOKUP);
}
@@ -3437,11 +3442,7 @@ softdep_prelink(dvp, vp, cnp)
softdep_speedup(ump);
process_worklist_item(UFSTOVFS(ump), 2, LK_NOWAIT);
- if (journal_space(ump, 0) == 0) {
- softdep_speedup(ump);
- if (journal_space(ump, 1) == 0)
- journal_suspend(ump);
- }
+ journal_check_space(ump);
FREE_LOCK(ump);
vn_lock_pair(dvp, false, vp, false);
More information about the dev-commits-src-branches
mailing list