Lines Matching refs:cur_trans

160 	struct btrfs_transaction *cur_trans = trans->transaction;  in switch_commit_roots()  local
166 list_for_each_entry_safe(root, tmp, &cur_trans->switch_commits, in switch_commit_roots()
176 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
177 while (!list_empty(&cur_trans->dropped_roots)) { in switch_commit_roots()
178 root = list_first_entry(&cur_trans->dropped_roots, in switch_commit_roots()
181 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
184 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
186 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
281 struct btrfs_transaction *cur_trans; in join_transaction() local
291 cur_trans = fs_info->running_transaction; in join_transaction()
292 if (cur_trans) { in join_transaction()
293 if (TRANS_ABORTED(cur_trans)) { in join_transaction()
295 return cur_trans->aborted; in join_transaction()
297 if (btrfs_blocked_trans_types[cur_trans->state] & type) { in join_transaction()
301 refcount_inc(&cur_trans->use_count); in join_transaction()
302 atomic_inc(&cur_trans->num_writers); in join_transaction()
303 extwriter_counter_inc(cur_trans, type); in join_transaction()
322 cur_trans = kmalloc(sizeof(*cur_trans), GFP_NOFS); in join_transaction()
323 if (!cur_trans) in join_transaction()
332 kfree(cur_trans); in join_transaction()
336 kfree(cur_trans); in join_transaction()
340 cur_trans->fs_info = fs_info; in join_transaction()
341 atomic_set(&cur_trans->pending_ordered, 0); in join_transaction()
342 init_waitqueue_head(&cur_trans->pending_wait); in join_transaction()
343 atomic_set(&cur_trans->num_writers, 1); in join_transaction()
344 extwriter_counter_init(cur_trans, type); in join_transaction()
345 init_waitqueue_head(&cur_trans->writer_wait); in join_transaction()
346 init_waitqueue_head(&cur_trans->commit_wait); in join_transaction()
347 cur_trans->state = TRANS_STATE_RUNNING; in join_transaction()
352 refcount_set(&cur_trans->use_count, 2); in join_transaction()
353 cur_trans->flags = 0; in join_transaction()
354 cur_trans->start_time = ktime_get_seconds(); in join_transaction()
356 memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs)); in join_transaction()
358 cur_trans->delayed_refs.href_root = RB_ROOT_CACHED; in join_transaction()
359 cur_trans->delayed_refs.dirty_extent_root = RB_ROOT; in join_transaction()
360 atomic_set(&cur_trans->delayed_refs.num_entries, 0); in join_transaction()
373 spin_lock_init(&cur_trans->delayed_refs.lock); in join_transaction()
375 INIT_LIST_HEAD(&cur_trans->pending_snapshots); in join_transaction()
376 INIT_LIST_HEAD(&cur_trans->dev_update_list); in join_transaction()
377 INIT_LIST_HEAD(&cur_trans->switch_commits); in join_transaction()
378 INIT_LIST_HEAD(&cur_trans->dirty_bgs); in join_transaction()
379 INIT_LIST_HEAD(&cur_trans->io_bgs); in join_transaction()
380 INIT_LIST_HEAD(&cur_trans->dropped_roots); in join_transaction()
381 mutex_init(&cur_trans->cache_write_mutex); in join_transaction()
382 spin_lock_init(&cur_trans->dirty_bgs_lock); in join_transaction()
383 INIT_LIST_HEAD(&cur_trans->deleted_bgs); in join_transaction()
384 spin_lock_init(&cur_trans->dropped_roots_lock); in join_transaction()
385 INIT_LIST_HEAD(&cur_trans->releasing_ebs); in join_transaction()
386 spin_lock_init(&cur_trans->releasing_ebs_lock); in join_transaction()
387 list_add_tail(&cur_trans->list, &fs_info->trans_list); in join_transaction()
388 extent_io_tree_init(fs_info, &cur_trans->dirty_pages, in join_transaction()
390 extent_io_tree_init(fs_info, &cur_trans->pinned_extents, in join_transaction()
393 cur_trans->transid = fs_info->generation; in join_transaction()
394 fs_info->running_transaction = cur_trans; in join_transaction()
395 cur_trans->aborted = 0; in join_transaction()
473 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_add_dropped_root() local
476 spin_lock(&cur_trans->dropped_roots_lock); in btrfs_add_dropped_root()
477 list_add_tail(&root->root_list, &cur_trans->dropped_roots); in btrfs_add_dropped_root()
478 spin_unlock(&cur_trans->dropped_roots_lock); in btrfs_add_dropped_root()
526 struct btrfs_transaction *cur_trans; in wait_current_trans() local
529 cur_trans = fs_info->running_transaction; in wait_current_trans()
530 if (cur_trans && is_transaction_blocked(cur_trans)) { in wait_current_trans()
531 refcount_inc(&cur_trans->use_count); in wait_current_trans()
535 cur_trans->state >= TRANS_STATE_UNBLOCKED || in wait_current_trans()
536 TRANS_ABORTED(cur_trans)); in wait_current_trans()
537 btrfs_put_transaction(cur_trans); in wait_current_trans()
575 struct btrfs_transaction *cur_trans; in start_transaction() local
691 cur_trans = fs_info->running_transaction; in start_transaction()
693 h->transid = cur_trans->transid; in start_transaction()
694 h->transaction = cur_trans; in start_transaction()
703 if (cur_trans->state >= TRANS_STATE_COMMIT_START && in start_transaction()
854 struct btrfs_transaction *cur_trans = NULL, *t; in btrfs_wait_for_commit() local
865 cur_trans = t; in btrfs_wait_for_commit()
866 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
881 if (!cur_trans) { in btrfs_wait_for_commit()
894 cur_trans = t; in btrfs_wait_for_commit()
895 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
900 if (!cur_trans) in btrfs_wait_for_commit()
904 wait_for_commit(cur_trans, TRANS_STATE_COMPLETED); in btrfs_wait_for_commit()
905 btrfs_put_transaction(cur_trans); in btrfs_wait_for_commit()
927 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_should_end_transaction() local
929 if (cur_trans->state >= TRANS_STATE_COMMIT_START || in btrfs_should_end_transaction()
930 test_bit(BTRFS_DELAYED_REFS_FLUSHING, &cur_trans->delayed_refs.flags)) in btrfs_should_end_transaction()
961 struct btrfs_transaction *cur_trans = trans->transaction; in __btrfs_end_transaction() local
980 WARN_ON(cur_trans != info->running_transaction); in __btrfs_end_transaction()
981 WARN_ON(atomic_read(&cur_trans->num_writers) < 1); in __btrfs_end_transaction()
982 atomic_dec(&cur_trans->num_writers); in __btrfs_end_transaction()
983 extwriter_counter_dec(cur_trans, trans->type); in __btrfs_end_transaction()
985 cond_wake_up(&cur_trans->writer_wait); in __btrfs_end_transaction()
986 btrfs_put_transaction(cur_trans); in __btrfs_end_transaction()
1896 struct btrfs_transaction *cur_trans; in btrfs_commit_transaction_async() local
1911 cur_trans = trans->transaction; in btrfs_commit_transaction_async()
1912 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction_async()
1929 cur_trans->state >= TRANS_STATE_COMMIT_START || in btrfs_commit_transaction_async()
1930 TRANS_ABORTED(cur_trans)); in btrfs_commit_transaction_async()
1934 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction_async()
1942 struct btrfs_transaction *cur_trans = trans->transaction; in cleanup_transaction() local
1955 BUG_ON(list_empty(&cur_trans->list)); in cleanup_transaction()
1957 if (cur_trans == fs_info->running_transaction) { in cleanup_transaction()
1958 cur_trans->state = TRANS_STATE_COMMIT_DOING; in cleanup_transaction()
1960 wait_event(cur_trans->writer_wait, in cleanup_transaction()
1961 atomic_read(&cur_trans->num_writers) == 1); in cleanup_transaction()
1974 list_del_init(&cur_trans->list); in cleanup_transaction()
1981 if (cur_trans == fs_info->running_transaction) in cleanup_transaction()
1987 btrfs_put_transaction(cur_trans); in cleanup_transaction()
1988 btrfs_put_transaction(cur_trans); in cleanup_transaction()
2039 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_commit_transaction() local
2046 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2047 ret = cur_trans->aborted; in btrfs_commit_transaction()
2060 &cur_trans->delayed_refs.flags)) { in btrfs_commit_transaction()
2074 if (!test_bit(BTRFS_TRANS_DIRTY_BG_RUN, &cur_trans->flags)) { in btrfs_commit_transaction()
2092 &cur_trans->flags)) in btrfs_commit_transaction()
2106 if (cur_trans->state >= TRANS_STATE_COMMIT_START) { in btrfs_commit_transaction()
2110 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction()
2115 wait_for_commit(cur_trans, want_state); in btrfs_commit_transaction()
2117 if (TRANS_ABORTED(cur_trans)) in btrfs_commit_transaction()
2118 ret = cur_trans->aborted; in btrfs_commit_transaction()
2120 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2125 cur_trans->state = TRANS_STATE_COMMIT_START; in btrfs_commit_transaction()
2128 if (cur_trans->list.prev != &fs_info->trans_list) { in btrfs_commit_transaction()
2134 prev_trans = list_entry(cur_trans->list.prev, in btrfs_commit_transaction()
2164 extwriter_counter_dec(cur_trans, trans->type); in btrfs_commit_transaction()
2174 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2175 extwriter_counter_read(cur_trans) == 0); in btrfs_commit_transaction()
2189 wait_event(cur_trans->pending_wait, in btrfs_commit_transaction()
2190 atomic_read(&cur_trans->pending_ordered) == 0); in btrfs_commit_transaction()
2199 cur_trans->state = TRANS_STATE_COMMIT_DOING; in btrfs_commit_transaction()
2201 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2202 atomic_read(&cur_trans->num_writers) == 1); in btrfs_commit_transaction()
2204 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2205 ret = cur_trans->aborted; in btrfs_commit_transaction()
2248 WARN_ON(cur_trans != trans->transaction); in btrfs_commit_transaction()
2296 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2297 ret = cur_trans->aborted; in btrfs_commit_transaction()
2301 cur_trans = fs_info->running_transaction; in btrfs_commit_transaction()
2306 &cur_trans->switch_commits); in btrfs_commit_transaction()
2311 &cur_trans->switch_commits); in btrfs_commit_transaction()
2315 ASSERT(list_empty(&cur_trans->dirty_bgs)); in btrfs_commit_transaction()
2316 ASSERT(list_empty(&cur_trans->io_bgs)); in btrfs_commit_transaction()
2324 btrfs_commit_device_sizes(cur_trans); in btrfs_commit_transaction()
2332 cur_trans->state = TRANS_STATE_UNBLOCKED; in btrfs_commit_transaction()
2356 btrfs_free_redirty_list(cur_trans); in btrfs_commit_transaction()
2371 cur_trans->state = TRANS_STATE_SUPER_COMMITTED; in btrfs_commit_transaction()
2372 wake_up(&cur_trans->commit_wait); in btrfs_commit_transaction()
2376 if (test_bit(BTRFS_TRANS_HAVE_FREE_BGS, &cur_trans->flags)) in btrfs_commit_transaction()
2379 fs_info->last_trans_committed = cur_trans->transid; in btrfs_commit_transaction()
2384 cur_trans->state = TRANS_STATE_COMPLETED; in btrfs_commit_transaction()
2385 wake_up(&cur_trans->commit_wait); in btrfs_commit_transaction()
2388 list_del_init(&cur_trans->list); in btrfs_commit_transaction()
2391 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2392 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()