This should cover even the extreme cases of memory pressure for the cost
of 2mb of memory, and this should make the journal WAL bypass exceedingly rare.
---
 ext2fs/journal.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ext2fs/journal.c b/ext2fs/journal.c
index 2625ea327..b05855b00 100644
--- a/ext2fs/journal.c
+++ b/ext2fs/journal.c
@@ -118,9 +118,9 @@
 #define JOURNAL_WAIT(cond, j) \
     pthread_cond_wait((cond), &(j)->j_state_lock)
 
-#define JRNL_LIFEBOAT_CAPACITY 128
+#define JRNL_LIFEBOAT_CAPACITY 512
 
-#define JRNL_LIFEBOAT_ALLOC_MASK_LEN 2
+#define JRNL_LIFEBOAT_ALLOC_MASK_LEN 8
 
 /* Thread-Local Deferred Block Queue (The Checkpoint Circuit Breaker)
  *
@@ -150,11 +150,11 @@ __thread int deferred_count = 0;
 
 struct journal_lifeboat
 {
-  /* 128 bits total: 0 means free, 1 means occupied.
+  /* 512 bits total: 0 means free, 1 means occupied.
      Protected by the main ext2_journal->j_state_lock. */
   uint64_t alloc_mask[JRNL_LIFEBOAT_ALLOC_MASK_LEN];
 
-  /* The pre-allocated payload pool (128 * 4KB = 512KB) */
+  /* The pre-allocated payload pool (512 * 4KB = 2MB) */
   char payloads[JRNL_LIFEBOAT_CAPACITY][4096];
 };
 
-- 
2.54.0


Reply via email to