journal_unlock_journal_head is misnamed: what it does is to drop a ref on the
journal_head and free it if that ref fell to zero.  it doesn'tactually unlock
anything.

Rename it to journal_put_journal_head().


 fs/jbd/commit.c      |    6 +++---
 fs/jbd/journal.c     |   10 +++++++---
 fs/jbd/transaction.c |    8 ++++----
 include/linux/jbd.h  |    2 +-
 4 files changed, 15 insertions(+), 11 deletions(-)

diff -puN fs/jbd/commit.c~jbd-045-rename-journal_unlock_journal_head fs/jbd/commit.c
--- 25/fs/jbd/commit.c~jbd-045-rename-journal_unlock_journal_head	2003-05-25 17:45:58.000000000 -0700
+++ 25-akpm/fs/jbd/commit.c	2003-05-25 17:45:58.000000000 -0700
@@ -487,7 +487,7 @@ start_journal_io:
 		 */
 		bh = jh2bh(jh);
 		BUFFER_TRACE(bh, "dumping temporary bh");
-		journal_unlock_journal_head(jh);
+		journal_put_journal_head(jh);
 		__brelse(bh);
 		J_ASSERT_BH(bh, atomic_read(&bh->b_count) == 0);
 		free_buffer_head(bh);
@@ -536,7 +536,7 @@ start_journal_io:
 		clear_bit(BH_JWrite, &bh->b_state);
 		journal_unfile_buffer(jh);
 		jh->b_transaction = NULL;
-		journal_unlock_journal_head(jh);
+		journal_put_journal_head(jh);
 		__brelse(bh);		/* One for getblk */
 		/* AKPM: bforget here */
 	}
@@ -578,7 +578,7 @@ start_journal_io:
 		if (unlikely(!buffer_uptodate(bh)))
 			err = -EIO;
 		put_bh(bh);		/* One for getblk() */
-		journal_unlock_journal_head(descriptor);
+		journal_put_journal_head(descriptor);
 	}
 
 	/* End of a transaction!  Finally, we can do checkpoint
diff -puN fs/jbd/journal.c~jbd-045-rename-journal_unlock_journal_head fs/jbd/journal.c
--- 25/fs/jbd/journal.c~jbd-045-rename-journal_unlock_journal_head	2003-05-25 17:45:58.000000000 -0700
+++ 25-akpm/fs/jbd/journal.c	2003-05-25 17:45:58.000000000 -0700
@@ -1686,7 +1686,7 @@ static void journal_free_journal_head(st
  * _before_ attaching the journal_head to a transaction.  To protect the
  * journal_head in this situation, journal_add_journal_head elevates the
  * journal_head's b_jcount refcount by one.  The caller must call
- * journal_unlock_journal_head() to undo this.
+ * journal_put_journal_head() to undo this.
  *
  * So the typical usage would be:
  *
@@ -1694,7 +1694,7 @@ static void journal_free_journal_head(st
  *	struct journal_head *jh = journal_add_journal_head(bh);
  *	...
  *	jh->b_transaction = xxx;
- *	journal_unlock_journal_head(jh);
+ *	journal_put_journal_head(jh);
  *
  * Now, the journal_head's b_jcount is zero, but it is safe from being released
  * because it has a non-zero b_transaction.
@@ -1791,7 +1791,11 @@ void journal_remove_journal_head(struct 
 	jbd_unlock_bh_journal_head(bh);
 }
 
-void journal_unlock_journal_head(struct journal_head *jh)
+/*
+ * Drop a reference on the passed journal_head.  If it fell to zero then try to
+ * release the journal_head from the buffer_head.
+ */
+void journal_put_journal_head(struct journal_head *jh)
 {
 	struct buffer_head *bh = jh2bh(jh);
 
diff -puN fs/jbd/transaction.c~jbd-045-rename-journal_unlock_journal_head fs/jbd/transaction.c
--- 25/fs/jbd/transaction.c~jbd-045-rename-journal_unlock_journal_head	2003-05-25 17:45:58.000000000 -0700
+++ 25-akpm/fs/jbd/transaction.c	2003-05-25 17:45:58.000000000 -0700
@@ -725,7 +725,7 @@ int journal_get_write_access (handle_t *
 	 * completes any outstanding IO before proceeding. */
 	lock_journal(journal);
 	rc = do_get_write_access(handle, jh, 0);
-	journal_unlock_journal_head(jh);
+	journal_put_journal_head(jh);
 	unlock_journal(journal);
 	return rc;
 }
@@ -802,7 +802,7 @@ int journal_get_create_access (handle_t 
 	JBUFFER_TRACE(jh, "cancelling revoke");
 	lock_kernel();
 	journal_cancel_revoke(handle, jh);
-	journal_unlock_journal_head(jh);
+	journal_put_journal_head(jh);
 	unlock_kernel();
 out:
 	unlock_journal(journal);
@@ -877,7 +877,7 @@ int journal_get_undo_access (handle_t *h
 out:
 	if (!err)
 		J_ASSERT_JH(jh, jh->b_committed_data);
-	journal_unlock_journal_head(jh);
+	journal_put_journal_head(jh);
 	unlock_journal(journal);
 	return err;
 }
@@ -1035,7 +1035,7 @@ no_journal:
 		__brelse(bh);
 	}
 	JBUFFER_TRACE(jh, "exit");
-	journal_unlock_journal_head(jh);
+	journal_put_journal_head(jh);
 	return 0;
 }
 
diff -puN include/linux/jbd.h~jbd-045-rename-journal_unlock_journal_head include/linux/jbd.h
--- 25/include/linux/jbd.h~jbd-045-rename-journal_unlock_journal_head	2003-05-25 17:45:58.000000000 -0700
+++ 25-akpm/include/linux/jbd.h	2003-05-25 17:45:58.000000000 -0700
@@ -967,7 +967,7 @@ extern int	   journal_force_commit(journ
 extern struct journal_head
 		*journal_add_journal_head(struct buffer_head *bh);
 extern void	journal_remove_journal_head(struct buffer_head *bh);
-extern void	journal_unlock_journal_head(struct journal_head *jh);
+extern void	journal_put_journal_head(struct journal_head *jh);
 
 /*
  * handle management

_