Lines Matching refs:cur_trans

155 	struct btrfs_transaction *cur_trans = trans->transaction;  in switch_commit_roots()  local
161 list_for_each_entry_safe(root, tmp, &cur_trans->switch_commits, in switch_commit_roots()
173 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
174 while (!list_empty(&cur_trans->dropped_roots)) { in switch_commit_roots()
175 root = list_first_entry(&cur_trans->dropped_roots, in switch_commit_roots()
178 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
181 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
183 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
275 struct btrfs_transaction *cur_trans; in join_transaction() local
285 cur_trans = fs_info->running_transaction; in join_transaction()
286 if (cur_trans) { in join_transaction()
287 if (TRANS_ABORTED(cur_trans)) { in join_transaction()
289 return cur_trans->aborted; in join_transaction()
291 if (btrfs_blocked_trans_types[cur_trans->state] & type) { in join_transaction()
295 refcount_inc(&cur_trans->use_count); in join_transaction()
296 atomic_inc(&cur_trans->num_writers); in join_transaction()
297 extwriter_counter_inc(cur_trans, type); in join_transaction()
316 cur_trans = kmalloc(sizeof(*cur_trans), GFP_NOFS); in join_transaction()
317 if (!cur_trans) in join_transaction()
326 kfree(cur_trans); in join_transaction()
330 kfree(cur_trans); in join_transaction()
334 cur_trans->fs_info = fs_info; in join_transaction()
335 atomic_set(&cur_trans->pending_ordered, 0); in join_transaction()
336 init_waitqueue_head(&cur_trans->pending_wait); in join_transaction()
337 atomic_set(&cur_trans->num_writers, 1); in join_transaction()
338 extwriter_counter_init(cur_trans, type); in join_transaction()
339 init_waitqueue_head(&cur_trans->writer_wait); in join_transaction()
340 init_waitqueue_head(&cur_trans->commit_wait); in join_transaction()
341 cur_trans->state = TRANS_STATE_RUNNING; in join_transaction()
346 refcount_set(&cur_trans->use_count, 2); in join_transaction()
347 cur_trans->flags = 0; in join_transaction()
348 cur_trans->start_time = ktime_get_seconds(); in join_transaction()
350 memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs)); in join_transaction()
352 cur_trans->delayed_refs.href_root = RB_ROOT_CACHED; in join_transaction()
353 cur_trans->delayed_refs.dirty_extent_root = RB_ROOT; in join_transaction()
354 atomic_set(&cur_trans->delayed_refs.num_entries, 0); in join_transaction()
367 spin_lock_init(&cur_trans->delayed_refs.lock); in join_transaction()
369 INIT_LIST_HEAD(&cur_trans->pending_snapshots); in join_transaction()
370 INIT_LIST_HEAD(&cur_trans->dev_update_list); in join_transaction()
371 INIT_LIST_HEAD(&cur_trans->switch_commits); in join_transaction()
372 INIT_LIST_HEAD(&cur_trans->dirty_bgs); in join_transaction()
373 INIT_LIST_HEAD(&cur_trans->io_bgs); in join_transaction()
374 INIT_LIST_HEAD(&cur_trans->dropped_roots); in join_transaction()
375 mutex_init(&cur_trans->cache_write_mutex); in join_transaction()
376 spin_lock_init(&cur_trans->dirty_bgs_lock); in join_transaction()
377 INIT_LIST_HEAD(&cur_trans->deleted_bgs); in join_transaction()
378 spin_lock_init(&cur_trans->dropped_roots_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()
516 struct btrfs_transaction *cur_trans; in wait_current_trans() local
519 cur_trans = fs_info->running_transaction; in wait_current_trans()
520 if (cur_trans && is_transaction_blocked(cur_trans)) { in wait_current_trans()
521 refcount_inc(&cur_trans->use_count); in wait_current_trans()
525 cur_trans->state >= TRANS_STATE_UNBLOCKED || in wait_current_trans()
526 TRANS_ABORTED(cur_trans)); in wait_current_trans()
527 btrfs_put_transaction(cur_trans); in wait_current_trans()
565 struct btrfs_transaction *cur_trans; in start_transaction() local
684 cur_trans = fs_info->running_transaction; in start_transaction()
686 h->transid = cur_trans->transid; in start_transaction()
687 h->transaction = cur_trans; in start_transaction()
697 if (cur_trans->state >= TRANS_STATE_COMMIT_START && in start_transaction()
838 struct btrfs_transaction *cur_trans = NULL, *t; in btrfs_wait_for_commit() local
849 cur_trans = t; in btrfs_wait_for_commit()
850 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
865 if (!cur_trans) { in btrfs_wait_for_commit()
878 cur_trans = t; in btrfs_wait_for_commit()
879 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
884 if (!cur_trans) in btrfs_wait_for_commit()
888 wait_for_commit(cur_trans); in btrfs_wait_for_commit()
889 btrfs_put_transaction(cur_trans); in btrfs_wait_for_commit()
911 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_should_end_transaction() local
914 if (cur_trans->state >= TRANS_STATE_COMMIT_START || in btrfs_should_end_transaction()
915 cur_trans->delayed_refs.flushing) in btrfs_should_end_transaction()
946 struct btrfs_transaction *cur_trans = trans->transaction; in __btrfs_end_transaction() local
965 WARN_ON(cur_trans != info->running_transaction); in __btrfs_end_transaction()
966 WARN_ON(atomic_read(&cur_trans->num_writers) < 1); in __btrfs_end_transaction()
967 atomic_dec(&cur_trans->num_writers); in __btrfs_end_transaction()
968 extwriter_counter_dec(cur_trans, trans->type); in __btrfs_end_transaction()
970 cond_wake_up(&cur_trans->writer_wait); in __btrfs_end_transaction()
971 btrfs_put_transaction(cur_trans); in __btrfs_end_transaction()
1894 struct btrfs_transaction *cur_trans; in btrfs_commit_transaction_async() local
1909 cur_trans = trans->transaction; in btrfs_commit_transaction_async()
1910 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction_async()
1925 wait_current_trans_commit_start_and_unblock(fs_info, cur_trans); in btrfs_commit_transaction_async()
1927 wait_current_trans_commit_start(fs_info, cur_trans); in btrfs_commit_transaction_async()
1932 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction_async()
1940 struct btrfs_transaction *cur_trans = trans->transaction; in cleanup_transaction() local
1953 BUG_ON(list_empty(&cur_trans->list)); in cleanup_transaction()
1955 if (cur_trans == fs_info->running_transaction) { in cleanup_transaction()
1956 cur_trans->state = TRANS_STATE_COMMIT_DOING; in cleanup_transaction()
1958 wait_event(cur_trans->writer_wait, in cleanup_transaction()
1959 atomic_read(&cur_trans->num_writers) == 1); in cleanup_transaction()
1972 list_del_init(&cur_trans->list); in cleanup_transaction()
1979 if (cur_trans == fs_info->running_transaction) in cleanup_transaction()
1985 btrfs_put_transaction(cur_trans); in cleanup_transaction()
1986 btrfs_put_transaction(cur_trans); in cleanup_transaction()
2074 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_commit_transaction() local
2089 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2090 ret = cur_trans->aborted; in btrfs_commit_transaction()
2107 cur_trans = trans->transaction; in btrfs_commit_transaction()
2113 cur_trans->delayed_refs.flushing = 1; in btrfs_commit_transaction()
2124 if (!test_bit(BTRFS_TRANS_DIRTY_BG_RUN, &cur_trans->flags)) { in btrfs_commit_transaction()
2142 &cur_trans->flags)) in btrfs_commit_transaction()
2156 if (cur_trans->state >= TRANS_STATE_COMMIT_START) { in btrfs_commit_transaction()
2158 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction()
2161 wait_for_commit(cur_trans); in btrfs_commit_transaction()
2163 if (TRANS_ABORTED(cur_trans)) in btrfs_commit_transaction()
2164 ret = cur_trans->aborted; in btrfs_commit_transaction()
2166 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2171 cur_trans->state = TRANS_STATE_COMMIT_START; in btrfs_commit_transaction()
2174 if (cur_trans->list.prev != &fs_info->trans_list) { in btrfs_commit_transaction()
2175 prev_trans = list_entry(cur_trans->list.prev, in btrfs_commit_transaction()
2204 extwriter_counter_dec(cur_trans, trans->type); in btrfs_commit_transaction()
2214 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2215 extwriter_counter_read(cur_trans) == 0); in btrfs_commit_transaction()
2229 wait_event(cur_trans->pending_wait, in btrfs_commit_transaction()
2230 atomic_read(&cur_trans->pending_ordered) == 0); in btrfs_commit_transaction()
2239 cur_trans->state = TRANS_STATE_COMMIT_DOING; in btrfs_commit_transaction()
2241 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2242 atomic_read(&cur_trans->num_writers) == 1); in btrfs_commit_transaction()
2244 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2245 ret = cur_trans->aborted; in btrfs_commit_transaction()
2288 WARN_ON(cur_trans != trans->transaction); in btrfs_commit_transaction()
2344 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2345 ret = cur_trans->aborted; in btrfs_commit_transaction()
2349 cur_trans = fs_info->running_transaction; in btrfs_commit_transaction()
2354 &cur_trans->switch_commits); in btrfs_commit_transaction()
2359 &cur_trans->switch_commits); in btrfs_commit_transaction()
2363 ASSERT(list_empty(&cur_trans->dirty_bgs)); in btrfs_commit_transaction()
2364 ASSERT(list_empty(&cur_trans->io_bgs)); in btrfs_commit_transaction()
2372 btrfs_commit_device_sizes(cur_trans); in btrfs_commit_transaction()
2380 cur_trans->state = TRANS_STATE_UNBLOCKED; in btrfs_commit_transaction()
2410 if (test_bit(BTRFS_TRANS_HAVE_FREE_BGS, &cur_trans->flags)) in btrfs_commit_transaction()
2413 fs_info->last_trans_committed = cur_trans->transid; in btrfs_commit_transaction()
2418 cur_trans->state = TRANS_STATE_COMPLETED; in btrfs_commit_transaction()
2419 wake_up(&cur_trans->commit_wait); in btrfs_commit_transaction()
2422 list_del_init(&cur_trans->list); in btrfs_commit_transaction()
2425 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2426 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()