From: Alex Tomas <alex@clusterfs.com>

start_this_handle() returns 0 always.  because of this journal_start() may
return handle with h_transaction = NULL



 25-akpm/fs/jbd/transaction.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN fs/jbd/transaction.c~start_this_handle-retval-fix fs/jbd/transaction.c
--- 25/fs/jbd/transaction.c~start_this_handle-retval-fix	Mon Jan  5 12:29:28 2004
+++ 25-akpm/fs/jbd/transaction.c	Mon Jan  5 12:29:28 2004
@@ -85,7 +85,7 @@ static int start_this_handle(journal_t *
 	int needed;
 	int nblocks = handle->h_buffer_credits;
 	transaction_t *new_transaction = NULL;
-	int ret;
+	int ret = 0;
 
 	if (nblocks > journal->j_max_transaction_buffers) {
 		printk(KERN_ERR "JBD: %s wants too many credits (%d > %d)\n",
@@ -231,7 +231,7 @@ repeat_locked:
 out:
 	if (new_transaction)
 		kfree(new_transaction);
-	return 0;
+	return ret;
 }
 
 /* Allocate a new handle.  This should probably be in a slab... */

_