Lines Matching refs:cur_trans

174 	struct btrfs_transaction *cur_trans = trans->transaction;  in switch_commit_roots()  local
182 ASSERT(cur_trans->state == TRANS_STATE_COMMIT_DOING); in switch_commit_roots()
189 list_for_each_entry_safe(root, tmp, &cur_trans->switch_commits, in switch_commit_roots()
199 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
200 while (!list_empty(&cur_trans->dropped_roots)) { in switch_commit_roots()
201 root = list_first_entry(&cur_trans->dropped_roots, in switch_commit_roots()
204 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
207 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
209 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
264 struct btrfs_transaction *cur_trans; in join_transaction() local
274 cur_trans = fs_info->running_transaction; in join_transaction()
275 if (cur_trans) { in join_transaction()
276 if (TRANS_ABORTED(cur_trans)) { in join_transaction()
278 return cur_trans->aborted; in join_transaction()
280 if (btrfs_blocked_trans_types[cur_trans->state] & type) { in join_transaction()
284 refcount_inc(&cur_trans->use_count); in join_transaction()
285 atomic_inc(&cur_trans->num_writers); in join_transaction()
286 extwriter_counter_inc(cur_trans, type); in join_transaction()
307 cur_trans = kmalloc(sizeof(*cur_trans), GFP_NOFS); in join_transaction()
308 if (!cur_trans) in join_transaction()
322 kfree(cur_trans); in join_transaction()
328 kfree(cur_trans); in join_transaction()
332 cur_trans->fs_info = fs_info; in join_transaction()
333 atomic_set(&cur_trans->pending_ordered, 0); in join_transaction()
334 init_waitqueue_head(&cur_trans->pending_wait); in join_transaction()
335 atomic_set(&cur_trans->num_writers, 1); in join_transaction()
336 extwriter_counter_init(cur_trans, type); in join_transaction()
337 init_waitqueue_head(&cur_trans->writer_wait); in join_transaction()
338 init_waitqueue_head(&cur_trans->commit_wait); in join_transaction()
339 cur_trans->state = TRANS_STATE_RUNNING; in join_transaction()
344 refcount_set(&cur_trans->use_count, 2); in join_transaction()
345 cur_trans->flags = 0; in join_transaction()
346 cur_trans->start_time = ktime_get_seconds(); in join_transaction()
348 memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs)); in join_transaction()
350 cur_trans->delayed_refs.href_root = RB_ROOT_CACHED; in join_transaction()
351 cur_trans->delayed_refs.dirty_extent_root = RB_ROOT; in join_transaction()
352 atomic_set(&cur_trans->delayed_refs.num_entries, 0); in join_transaction()
365 spin_lock_init(&cur_trans->delayed_refs.lock); in join_transaction()
367 INIT_LIST_HEAD(&cur_trans->pending_snapshots); in join_transaction()
368 INIT_LIST_HEAD(&cur_trans->dev_update_list); in join_transaction()
369 INIT_LIST_HEAD(&cur_trans->switch_commits); in join_transaction()
370 INIT_LIST_HEAD(&cur_trans->dirty_bgs); in join_transaction()
371 INIT_LIST_HEAD(&cur_trans->io_bgs); in join_transaction()
372 INIT_LIST_HEAD(&cur_trans->dropped_roots); in join_transaction()
373 mutex_init(&cur_trans->cache_write_mutex); in join_transaction()
374 spin_lock_init(&cur_trans->dirty_bgs_lock); in join_transaction()
375 INIT_LIST_HEAD(&cur_trans->deleted_bgs); in join_transaction()
376 spin_lock_init(&cur_trans->dropped_roots_lock); in join_transaction()
377 INIT_LIST_HEAD(&cur_trans->releasing_ebs); in join_transaction()
378 spin_lock_init(&cur_trans->releasing_ebs_lock); in join_transaction()
379 list_add_tail(&cur_trans->list, &fs_info->trans_list); in join_transaction()
380 extent_io_tree_init(fs_info, &cur_trans->dirty_pages, in join_transaction()
382 extent_io_tree_init(fs_info, &cur_trans->pinned_extents, in join_transaction()
385 cur_trans->transid = fs_info->generation; in join_transaction()
386 fs_info->running_transaction = cur_trans; in join_transaction()
387 cur_trans->aborted = 0; in join_transaction()
464 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_add_dropped_root() local
467 spin_lock(&cur_trans->dropped_roots_lock); in btrfs_add_dropped_root()
468 list_add_tail(&root->root_list, &cur_trans->dropped_roots); in btrfs_add_dropped_root()
469 spin_unlock(&cur_trans->dropped_roots_lock); in btrfs_add_dropped_root()
517 struct btrfs_transaction *cur_trans; in wait_current_trans() local
520 cur_trans = fs_info->running_transaction; in wait_current_trans()
521 if (cur_trans && is_transaction_blocked(cur_trans)) { in wait_current_trans()
522 refcount_inc(&cur_trans->use_count); in wait_current_trans()
527 cur_trans->state >= TRANS_STATE_UNBLOCKED || in wait_current_trans()
528 TRANS_ABORTED(cur_trans)); in wait_current_trans()
529 btrfs_put_transaction(cur_trans); in wait_current_trans()
567 struct btrfs_transaction *cur_trans; in start_transaction() local
683 cur_trans = fs_info->running_transaction; in start_transaction()
685 h->transid = cur_trans->transid; in start_transaction()
686 h->transaction = cur_trans; in start_transaction()
694 if (cur_trans->state >= TRANS_STATE_COMMIT_START && in start_transaction()
884 struct btrfs_transaction *cur_trans = NULL, *t; in btrfs_wait_for_commit() local
895 cur_trans = t; in btrfs_wait_for_commit()
896 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
911 if (!cur_trans) { in btrfs_wait_for_commit()
924 cur_trans = t; in btrfs_wait_for_commit()
925 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
930 if (!cur_trans) in btrfs_wait_for_commit()
934 wait_for_commit(cur_trans, TRANS_STATE_COMPLETED); in btrfs_wait_for_commit()
935 btrfs_put_transaction(cur_trans); in btrfs_wait_for_commit()
957 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_should_end_transaction() local
959 if (cur_trans->state >= TRANS_STATE_COMMIT_START || in btrfs_should_end_transaction()
960 test_bit(BTRFS_DELAYED_REFS_FLUSHING, &cur_trans->delayed_refs.flags)) in btrfs_should_end_transaction()
991 struct btrfs_transaction *cur_trans = trans->transaction; in __btrfs_end_transaction() local
1010 WARN_ON(cur_trans != info->running_transaction); in __btrfs_end_transaction()
1011 WARN_ON(atomic_read(&cur_trans->num_writers) < 1); in __btrfs_end_transaction()
1012 atomic_dec(&cur_trans->num_writers); in __btrfs_end_transaction()
1013 extwriter_counter_dec(cur_trans, trans->type); in __btrfs_end_transaction()
1015 cond_wake_up(&cur_trans->writer_wait); in __btrfs_end_transaction()
1020 btrfs_put_transaction(cur_trans); in __btrfs_end_transaction()
1954 struct btrfs_transaction *cur_trans; in btrfs_commit_transaction_async() local
1961 cur_trans = trans->transaction; in btrfs_commit_transaction_async()
1962 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction_async()
1972 cur_trans->state >= TRANS_STATE_COMMIT_START || in btrfs_commit_transaction_async()
1973 TRANS_ABORTED(cur_trans)); in btrfs_commit_transaction_async()
1974 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction_async()
1980 struct btrfs_transaction *cur_trans = trans->transaction; in cleanup_transaction() local
1993 BUG_ON(list_empty(&cur_trans->list)); in cleanup_transaction()
1995 if (cur_trans == fs_info->running_transaction) { in cleanup_transaction()
1996 cur_trans->state = TRANS_STATE_COMMIT_DOING; in cleanup_transaction()
2004 wait_event(cur_trans->writer_wait, in cleanup_transaction()
2005 atomic_read(&cur_trans->num_writers) == 1); in cleanup_transaction()
2018 list_del_init(&cur_trans->list); in cleanup_transaction()
2025 if (cur_trans == fs_info->running_transaction) in cleanup_transaction()
2031 btrfs_put_transaction(cur_trans); in cleanup_transaction()
2032 btrfs_put_transaction(cur_trans); in cleanup_transaction()
2098 struct btrfs_transaction *cur_trans = trans->transaction; in add_pending_snapshot() local
2104 ASSERT(cur_trans->state >= TRANS_STATE_COMMIT_START); in add_pending_snapshot()
2106 list_add(&trans->pending_snapshot->list, &cur_trans->pending_snapshots); in add_pending_snapshot()
2121 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_commit_transaction() local
2133 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2134 ret = cur_trans->aborted; in btrfs_commit_transaction()
2146 &cur_trans->delayed_refs.flags)) { in btrfs_commit_transaction()
2158 if (!test_bit(BTRFS_TRANS_DIRTY_BG_RUN, &cur_trans->flags)) { in btrfs_commit_transaction()
2176 &cur_trans->flags)) in btrfs_commit_transaction()
2188 if (cur_trans->state >= TRANS_STATE_COMMIT_START) { in btrfs_commit_transaction()
2194 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction()
2202 wait_for_commit(cur_trans, want_state); in btrfs_commit_transaction()
2204 if (TRANS_ABORTED(cur_trans)) in btrfs_commit_transaction()
2205 ret = cur_trans->aborted; in btrfs_commit_transaction()
2207 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2212 cur_trans->state = TRANS_STATE_COMMIT_START; in btrfs_commit_transaction()
2216 if (cur_trans->list.prev != &fs_info->trans_list) { in btrfs_commit_transaction()
2222 prev_trans = list_entry(cur_trans->list.prev, in btrfs_commit_transaction()
2258 extwriter_counter_dec(cur_trans, trans->type); in btrfs_commit_transaction()
2275 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2276 extwriter_counter_read(cur_trans) == 0); in btrfs_commit_transaction()
2293 wait_event(cur_trans->pending_wait, in btrfs_commit_transaction()
2294 atomic_read(&cur_trans->pending_ordered) == 0); in btrfs_commit_transaction()
2304 cur_trans->state = TRANS_STATE_COMMIT_DOING; in btrfs_commit_transaction()
2314 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2315 atomic_read(&cur_trans->num_writers) == 1); in btrfs_commit_transaction()
2334 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2335 ret = cur_trans->aborted; in btrfs_commit_transaction()
2379 WARN_ON(cur_trans != trans->transaction); in btrfs_commit_transaction()
2406 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2407 ret = cur_trans->aborted; in btrfs_commit_transaction()
2411 cur_trans = fs_info->running_transaction; in btrfs_commit_transaction()
2416 &cur_trans->switch_commits); in btrfs_commit_transaction()
2421 &cur_trans->switch_commits); in btrfs_commit_transaction()
2427 &cur_trans->switch_commits); in btrfs_commit_transaction()
2432 ASSERT(list_empty(&cur_trans->dirty_bgs)); in btrfs_commit_transaction()
2433 ASSERT(list_empty(&cur_trans->io_bgs)); in btrfs_commit_transaction()
2441 btrfs_commit_device_sizes(cur_trans); in btrfs_commit_transaction()
2459 cur_trans->state = TRANS_STATE_UNBLOCKED; in btrfs_commit_transaction()
2485 btrfs_free_redirty_list(cur_trans); in btrfs_commit_transaction()
2500 cur_trans->state = TRANS_STATE_SUPER_COMMITTED; in btrfs_commit_transaction()
2501 wake_up(&cur_trans->commit_wait); in btrfs_commit_transaction()
2506 if (test_bit(BTRFS_TRANS_HAVE_FREE_BGS, &cur_trans->flags)) in btrfs_commit_transaction()
2509 fs_info->last_trans_committed = cur_trans->transid; in btrfs_commit_transaction()
2514 cur_trans->state = TRANS_STATE_COMPLETED; in btrfs_commit_transaction()
2515 wake_up(&cur_trans->commit_wait); in btrfs_commit_transaction()
2519 list_del_init(&cur_trans->list); in btrfs_commit_transaction()
2522 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2523 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()