<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">

Implement the designed locking around journal-&gt;j_head.



 25-akpm/fs/jbd/journal.c |    4 +++-
 fs/jbd/checkpoint.c      |    0 
 fs/jbd/commit.c          |    0 
 3 files changed, 3 insertions(+), 1 deletion(-)

diff -puN fs/jbd/checkpoint.c~jbd-190-j_head-locking fs/jbd/checkpoint.c
diff -puN fs/jbd/commit.c~jbd-190-j_head-locking fs/jbd/commit.c
diff -puN fs/jbd/journal.c~jbd-190-j_head-locking fs/jbd/journal.c
--- 25/fs/jbd/journal.c~jbd-190-j_head-locking	Thu Jun  5 15:14:26 2003
+++ 25-akpm/fs/jbd/journal.c	Thu Jun  5 15:14:26 2003
@@ -507,6 +507,7 @@ int journal_next_log_block(journal_t *jo
 {
 	unsigned long blocknr;
 
+	spin_lock(&amp;journal-&gt;j_state_lock);
 	J_ASSERT(journal-&gt;j_free &gt; 1);
 
 	blocknr = journal-&gt;j_head;
@@ -514,6 +515,7 @@ int journal_next_log_block(journal_t *jo
 	journal-&gt;j_free--;
 	if (journal-&gt;j_head == journal-&gt;j_last)
 		journal-&gt;j_head = journal-&gt;j_first;
+	spin_unlock(&amp;journal-&gt;j_state_lock);
 	return journal_bmap(journal, blocknr, retp);
 }
 
@@ -733,7 +735,7 @@ static void journal_fail_superblock (jou
  * subsequent use.
  */
 
-static int journal_reset (journal_t *journal)
+static int journal_reset(journal_t *journal)
 {
 	journal_superblock_t *sb = journal-&gt;j_superblock;
 	unsigned int first, last;

_
</pre></body></html>