Lines Matching refs:transaction
49 get_transaction(journal_t *journal, transaction_t *transaction) in get_transaction() argument
51 transaction->t_journal = journal; in get_transaction()
52 transaction->t_state = T_RUNNING; in get_transaction()
53 transaction->t_start_time = ktime_get(); in get_transaction()
54 transaction->t_tid = journal->j_transaction_sequence++; in get_transaction()
55 transaction->t_expires = jiffies + journal->j_commit_interval; in get_transaction()
56 spin_lock_init(&transaction->t_handle_lock); in get_transaction()
60 round_jiffies_up(transaction->t_expires); in get_transaction()
64 journal->j_running_transaction = transaction; in get_transaction()
66 return transaction; in get_transaction()
86 transaction_t *transaction; in start_this_handle() local
144 transaction = journal->j_running_transaction; in start_this_handle()
150 if (transaction->t_state == T_LOCKED) { in start_this_handle()
166 spin_lock(&transaction->t_handle_lock); in start_this_handle()
167 needed = transaction->t_outstanding_credits + nblocks; in start_this_handle()
178 spin_unlock(&transaction->t_handle_lock); in start_this_handle()
181 __log_start_commit(journal, transaction->t_tid); in start_this_handle()
215 spin_unlock(&transaction->t_handle_lock); in start_this_handle()
223 handle->h_transaction = transaction; in start_this_handle()
224 transaction->t_outstanding_credits += nblocks; in start_this_handle()
225 transaction->t_updates++; in start_this_handle()
226 transaction->t_handle_count++; in start_this_handle()
228 handle, nblocks, transaction->t_outstanding_credits, in start_this_handle()
230 spin_unlock(&transaction->t_handle_lock); in start_this_handle()
322 transaction_t *transaction = handle->h_transaction; in journal_extend() local
323 journal_t *journal = transaction->t_journal; in journal_extend()
342 spin_lock(&transaction->t_handle_lock); in journal_extend()
343 wanted = transaction->t_outstanding_credits + nblocks; in journal_extend()
358 transaction->t_outstanding_credits += nblocks; in journal_extend()
363 spin_unlock(&transaction->t_handle_lock); in journal_extend()
388 transaction_t *transaction = handle->h_transaction; in journal_restart() local
389 journal_t *journal = transaction->t_journal; in journal_restart()
401 J_ASSERT(transaction->t_updates > 0); in journal_restart()
405 spin_lock(&transaction->t_handle_lock); in journal_restart()
406 transaction->t_outstanding_credits -= handle->h_buffer_credits; in journal_restart()
407 transaction->t_updates--; in journal_restart()
409 if (!transaction->t_updates) in journal_restart()
411 spin_unlock(&transaction->t_handle_lock); in journal_restart()
414 __log_start_commit(journal, transaction->t_tid); in journal_restart()
460 transaction_t *transaction = journal->j_running_transaction; in journal_lock_updates() local
462 if (!transaction) in journal_lock_updates()
465 spin_lock(&transaction->t_handle_lock); in journal_lock_updates()
466 if (!transaction->t_updates) { in journal_lock_updates()
467 spin_unlock(&transaction->t_handle_lock); in journal_lock_updates()
472 spin_unlock(&transaction->t_handle_lock); in journal_lock_updates()
523 transaction_t *transaction; in do_get_write_access() local
532 transaction = handle->h_transaction; in do_get_write_access()
533 journal = transaction->t_journal; in do_get_write_access()
566 jh->b_transaction == transaction || in do_get_write_access()
571 transaction); in do_get_write_access()
597 if (jh->b_transaction == transaction || in do_get_write_access()
598 jh->b_next_transaction == transaction) in do_get_write_access()
614 jh->b_next_transaction = transaction; in do_get_write_access()
620 if (jh->b_transaction && jh->b_transaction != transaction) { in do_get_write_access()
692 jh->b_next_transaction = transaction; in do_get_write_access()
706 __journal_file_buffer(jh, transaction, BJ_Reserved); in do_get_write_access()
786 transaction_t *transaction = handle->h_transaction; in journal_get_create_access() local
787 journal_t *journal = transaction->t_journal; in journal_get_create_access()
807 J_ASSERT_JH(jh, (jh->b_transaction == transaction || in journal_get_create_access()
830 __journal_file_buffer(jh, transaction, BJ_Reserved); in journal_get_create_access()
836 jh->b_next_transaction = transaction; in journal_get_create_access()
1139 transaction_t *transaction = handle->h_transaction; in journal_dirty_metadata() local
1140 journal_t *journal = transaction->t_journal; in journal_dirty_metadata()
1168 if (jh->b_transaction == transaction && jh->b_jlist == BJ_Metadata) { in journal_dirty_metadata()
1183 if (jh->b_transaction != transaction) { in journal_dirty_metadata()
1187 J_ASSERT_JH(jh, jh->b_next_transaction == transaction); in journal_dirty_metadata()
1237 transaction_t *transaction = handle->h_transaction; in journal_forget() local
1238 journal_t *journal = transaction->t_journal; in journal_forget()
1302 __journal_file_buffer(jh, transaction, BJ_Forget); in journal_forget()
1322 J_ASSERT(jh->b_next_transaction == transaction); in journal_forget()
1364 transaction_t *transaction = handle->h_transaction; in journal_stop() local
1365 journal_t *journal = transaction->t_journal; in journal_stop()
1374 J_ASSERT(transaction->t_updates > 0); in journal_stop()
1422 transaction->t_start_time)); in journal_stop()
1437 spin_lock(&transaction->t_handle_lock); in journal_stop()
1438 transaction->t_outstanding_credits -= handle->h_buffer_credits; in journal_stop()
1439 transaction->t_updates--; in journal_stop()
1440 if (!transaction->t_updates) { in journal_stop()
1453 transaction->t_outstanding_credits > in journal_stop()
1455 time_after_eq(jiffies, transaction->t_expires)) { in journal_stop()
1459 tid_t tid = transaction->t_tid; in journal_stop()
1461 spin_unlock(&transaction->t_handle_lock); in journal_stop()
1465 __log_start_commit(journal, transaction->t_tid); in journal_stop()
1475 spin_unlock(&transaction->t_handle_lock); in journal_stop()
1574 transaction_t *transaction; in __journal_temp_unlink_buffer() local
1578 transaction = jh->b_transaction; in __journal_temp_unlink_buffer()
1579 if (transaction) in __journal_temp_unlink_buffer()
1580 assert_spin_locked(&transaction->t_journal->j_list_lock); in __journal_temp_unlink_buffer()
1584 J_ASSERT_JH(jh, transaction != NULL); in __journal_temp_unlink_buffer()
1590 list = &transaction->t_sync_datalist; in __journal_temp_unlink_buffer()
1593 transaction->t_nr_buffers--; in __journal_temp_unlink_buffer()
1594 J_ASSERT_JH(jh, transaction->t_nr_buffers >= 0); in __journal_temp_unlink_buffer()
1595 list = &transaction->t_buffers; in __journal_temp_unlink_buffer()
1598 list = &transaction->t_forget; in __journal_temp_unlink_buffer()
1601 list = &transaction->t_iobuf_list; in __journal_temp_unlink_buffer()
1604 list = &transaction->t_shadow_list; in __journal_temp_unlink_buffer()
1607 list = &transaction->t_log_list; in __journal_temp_unlink_buffer()
1610 list = &transaction->t_reserved_list; in __journal_temp_unlink_buffer()
1613 list = &transaction->t_locked_list; in __journal_temp_unlink_buffer()
1775 static int __dispose_buffer(struct journal_head *jh, transaction_t *transaction) in __dispose_buffer() argument
1789 __journal_file_buffer(jh, transaction, BJ_Forget); in __dispose_buffer()
1848 transaction_t *transaction; in journal_unmap_buffer() local
1895 transaction = jh->b_transaction; in journal_unmap_buffer()
1896 if (transaction == NULL) { in journal_unmap_buffer()
1940 } else if (transaction == journal->j_committing_transaction) { in journal_unmap_buffer()
1948 may_free = __dispose_buffer(jh, transaction); in journal_unmap_buffer()
1989 J_ASSERT_JH(jh, transaction == journal->j_running_transaction); in journal_unmap_buffer()
1991 may_free = __dispose_buffer(jh, transaction); in journal_unmap_buffer()
2079 transaction_t *transaction, int jlist) in __journal_file_buffer() argument
2086 assert_spin_locked(&transaction->t_journal->j_list_lock); in __journal_file_buffer()
2089 J_ASSERT_JH(jh, jh->b_transaction == transaction || in __journal_file_buffer()
2115 jh->b_transaction = transaction; in __journal_file_buffer()
2123 list = &transaction->t_sync_datalist; in __journal_file_buffer()
2126 transaction->t_nr_buffers++; in __journal_file_buffer()
2127 list = &transaction->t_buffers; in __journal_file_buffer()
2130 list = &transaction->t_forget; in __journal_file_buffer()
2133 list = &transaction->t_iobuf_list; in __journal_file_buffer()
2136 list = &transaction->t_shadow_list; in __journal_file_buffer()
2139 list = &transaction->t_log_list; in __journal_file_buffer()
2142 list = &transaction->t_reserved_list; in __journal_file_buffer()
2145 list = &transaction->t_locked_list; in __journal_file_buffer()
2157 transaction_t *transaction, int jlist) in journal_file_buffer() argument
2160 spin_lock(&transaction->t_journal->j_list_lock); in journal_file_buffer()
2161 __journal_file_buffer(jh, transaction, jlist); in journal_file_buffer()
2162 spin_unlock(&transaction->t_journal->j_list_lock); in journal_file_buffer()