Loading fs/jbd2/transaction.c +11 −0 Original line number Diff line number Diff line Loading @@ -241,6 +241,8 @@ static int start_this_handle(journal_t *journal, handle_t *handle) return ret; } static struct lock_class_key jbd2_handle_key; /* Allocate a new handle. This should probably be in a slab... */ static handle_t *new_handle(int nblocks) { Loading @@ -251,6 +253,9 @@ static handle_t *new_handle(int nblocks) handle->h_buffer_credits = nblocks; handle->h_ref = 1; lockdep_init_map(&handle->h_lockdep_map, "jbd2_handle", &jbd2_handle_key, 0); return handle; } Loading Loading @@ -293,7 +298,11 @@ handle_t *jbd2_journal_start(journal_t *journal, int nblocks) jbd2_free_handle(handle); current->journal_info = NULL; handle = ERR_PTR(err); goto out; } lock_acquire(&handle->h_lockdep_map, 0, 0, 0, 2, _THIS_IP_); out: return handle; } Loading Loading @@ -1419,6 +1428,8 @@ int jbd2_journal_stop(handle_t *handle) spin_unlock(&journal->j_state_lock); } lock_release(&handle->h_lockdep_map, 1, _THIS_IP_); jbd2_free_handle(handle); return err; } Loading include/linux/jbd2.h +4 −0 Original line number Diff line number Diff line Loading @@ -418,6 +418,10 @@ struct handle_s unsigned int h_sync: 1; /* sync-on-close */ unsigned int h_jdata: 1; /* force data journaling */ unsigned int h_aborted: 1; /* fatal error on handle */ #ifdef CONFIG_DEBUG_LOCK_ALLOC struct lockdep_map h_lockdep_map; #endif }; Loading Loading
fs/jbd2/transaction.c +11 −0 Original line number Diff line number Diff line Loading @@ -241,6 +241,8 @@ static int start_this_handle(journal_t *journal, handle_t *handle) return ret; } static struct lock_class_key jbd2_handle_key; /* Allocate a new handle. This should probably be in a slab... */ static handle_t *new_handle(int nblocks) { Loading @@ -251,6 +253,9 @@ static handle_t *new_handle(int nblocks) handle->h_buffer_credits = nblocks; handle->h_ref = 1; lockdep_init_map(&handle->h_lockdep_map, "jbd2_handle", &jbd2_handle_key, 0); return handle; } Loading Loading @@ -293,7 +298,11 @@ handle_t *jbd2_journal_start(journal_t *journal, int nblocks) jbd2_free_handle(handle); current->journal_info = NULL; handle = ERR_PTR(err); goto out; } lock_acquire(&handle->h_lockdep_map, 0, 0, 0, 2, _THIS_IP_); out: return handle; } Loading Loading @@ -1419,6 +1428,8 @@ int jbd2_journal_stop(handle_t *handle) spin_unlock(&journal->j_state_lock); } lock_release(&handle->h_lockdep_map, 1, _THIS_IP_); jbd2_free_handle(handle); return err; } Loading
include/linux/jbd2.h +4 −0 Original line number Diff line number Diff line Loading @@ -418,6 +418,10 @@ struct handle_s unsigned int h_sync: 1; /* sync-on-close */ unsigned int h_jdata: 1; /* force data journaling */ unsigned int h_aborted: 1; /* fatal error on handle */ #ifdef CONFIG_DEBUG_LOCK_ALLOC struct lockdep_map h_lockdep_map; #endif }; Loading