From: Alex Tomas 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... */ _