jbd: Annotate transaction start also for journal_restart()
Jan Kara [Tue, 11 Aug 2009 15:27:21 +0000 (17:27 +0200)]
lockdep annotation for a transaction start has been at the end of
journal_start(). But a transaction is also started from journal_restart(). Move
the lockdep annotation to start_this_handle() which covers both cases.

Signed-off-by: Jan Kara <jack@suse.cz>

fs/jbd/transaction.c

index 833c167..006f9ad 100644 (file)
@@ -229,6 +229,8 @@ repeat_locked:
                  __log_space_left(journal));
        spin_unlock(&transaction->t_handle_lock);
        spin_unlock(&journal->j_state_lock);
+
+       lock_map_acquire(&handle->h_lockdep_map);
 out:
        if (unlikely(new_transaction))          /* It's usually NULL */
                kfree(new_transaction);
@@ -293,9 +295,6 @@ handle_t *journal_start(journal_t *journal, int nblocks)
                handle = ERR_PTR(err);
                goto out;
        }
-
-       lock_map_acquire(&handle->h_lockdep_map);
-
 out:
        return handle;
 }
@@ -417,6 +416,7 @@ int journal_restart(handle_t *handle, int nblocks)
        __log_start_commit(journal, transaction->t_tid);
        spin_unlock(&journal->j_state_lock);
 
+       lock_map_release(&handle->h_lockdep_map);
        handle->h_buffer_credits = nblocks;
        ret = start_this_handle(journal, handle);
        return ret;