Lines Matching refs:cur_trans

161 	struct btrfs_transaction *cur_trans = trans->transaction;  in switch_commit_roots()  local
169 ASSERT(cur_trans->state == TRANS_STATE_COMMIT_DOING); in switch_commit_roots()
176 list_for_each_entry_safe(root, tmp, &cur_trans->switch_commits, in switch_commit_roots()
186 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
187 while (!list_empty(&cur_trans->dropped_roots)) { in switch_commit_roots()
188 root = list_first_entry(&cur_trans->dropped_roots, in switch_commit_roots()
191 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
194 spin_lock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
196 spin_unlock(&cur_trans->dropped_roots_lock); in switch_commit_roots()
251 struct btrfs_transaction *cur_trans; in join_transaction() local
261 cur_trans = fs_info->running_transaction; in join_transaction()
262 if (cur_trans) { in join_transaction()
263 if (TRANS_ABORTED(cur_trans)) { in join_transaction()
265 return cur_trans->aborted; in join_transaction()
267 if (btrfs_blocked_trans_types[cur_trans->state] & type) { in join_transaction()
271 refcount_inc(&cur_trans->use_count); in join_transaction()
272 atomic_inc(&cur_trans->num_writers); in join_transaction()
273 extwriter_counter_inc(cur_trans, type); in join_transaction()
294 cur_trans = kmalloc(sizeof(*cur_trans), GFP_NOFS); in join_transaction()
295 if (!cur_trans) in join_transaction()
309 kfree(cur_trans); in join_transaction()
315 kfree(cur_trans); in join_transaction()
319 cur_trans->fs_info = fs_info; in join_transaction()
320 atomic_set(&cur_trans->pending_ordered, 0); in join_transaction()
321 init_waitqueue_head(&cur_trans->pending_wait); in join_transaction()
322 atomic_set(&cur_trans->num_writers, 1); in join_transaction()
323 extwriter_counter_init(cur_trans, type); in join_transaction()
324 init_waitqueue_head(&cur_trans->writer_wait); in join_transaction()
325 init_waitqueue_head(&cur_trans->commit_wait); in join_transaction()
326 cur_trans->state = TRANS_STATE_RUNNING; in join_transaction()
331 refcount_set(&cur_trans->use_count, 2); in join_transaction()
332 cur_trans->flags = 0; in join_transaction()
333 cur_trans->start_time = ktime_get_seconds(); in join_transaction()
335 memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs)); in join_transaction()
337 cur_trans->delayed_refs.href_root = RB_ROOT_CACHED; in join_transaction()
338 cur_trans->delayed_refs.dirty_extent_root = RB_ROOT; in join_transaction()
339 atomic_set(&cur_trans->delayed_refs.num_entries, 0); in join_transaction()
352 spin_lock_init(&cur_trans->delayed_refs.lock); in join_transaction()
354 INIT_LIST_HEAD(&cur_trans->pending_snapshots); in join_transaction()
355 INIT_LIST_HEAD(&cur_trans->dev_update_list); in join_transaction()
356 INIT_LIST_HEAD(&cur_trans->switch_commits); in join_transaction()
357 INIT_LIST_HEAD(&cur_trans->dirty_bgs); in join_transaction()
358 INIT_LIST_HEAD(&cur_trans->io_bgs); in join_transaction()
359 INIT_LIST_HEAD(&cur_trans->dropped_roots); in join_transaction()
360 mutex_init(&cur_trans->cache_write_mutex); in join_transaction()
361 spin_lock_init(&cur_trans->dirty_bgs_lock); in join_transaction()
362 INIT_LIST_HEAD(&cur_trans->deleted_bgs); in join_transaction()
363 spin_lock_init(&cur_trans->dropped_roots_lock); in join_transaction()
364 INIT_LIST_HEAD(&cur_trans->releasing_ebs); in join_transaction()
365 spin_lock_init(&cur_trans->releasing_ebs_lock); in join_transaction()
366 list_add_tail(&cur_trans->list, &fs_info->trans_list); in join_transaction()
367 extent_io_tree_init(fs_info, &cur_trans->dirty_pages, in join_transaction()
369 extent_io_tree_init(fs_info, &cur_trans->pinned_extents, in join_transaction()
372 cur_trans->transid = fs_info->generation; in join_transaction()
373 fs_info->running_transaction = cur_trans; in join_transaction()
374 cur_trans->aborted = 0; in join_transaction()
451 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_add_dropped_root() local
454 spin_lock(&cur_trans->dropped_roots_lock); in btrfs_add_dropped_root()
455 list_add_tail(&root->root_list, &cur_trans->dropped_roots); in btrfs_add_dropped_root()
456 spin_unlock(&cur_trans->dropped_roots_lock); in btrfs_add_dropped_root()
504 struct btrfs_transaction *cur_trans; in wait_current_trans() local
507 cur_trans = fs_info->running_transaction; in wait_current_trans()
508 if (cur_trans && is_transaction_blocked(cur_trans)) { in wait_current_trans()
509 refcount_inc(&cur_trans->use_count); in wait_current_trans()
514 cur_trans->state >= TRANS_STATE_UNBLOCKED || in wait_current_trans()
515 TRANS_ABORTED(cur_trans)); in wait_current_trans()
516 btrfs_put_transaction(cur_trans); in wait_current_trans()
554 struct btrfs_transaction *cur_trans; in start_transaction() local
670 cur_trans = fs_info->running_transaction; in start_transaction()
672 h->transid = cur_trans->transid; in start_transaction()
673 h->transaction = cur_trans; in start_transaction()
681 if (cur_trans->state >= TRANS_STATE_COMMIT_START && in start_transaction()
871 struct btrfs_transaction *cur_trans = NULL, *t; in btrfs_wait_for_commit() local
882 cur_trans = t; in btrfs_wait_for_commit()
883 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
898 if (!cur_trans) { in btrfs_wait_for_commit()
911 cur_trans = t; in btrfs_wait_for_commit()
912 refcount_inc(&cur_trans->use_count); in btrfs_wait_for_commit()
917 if (!cur_trans) in btrfs_wait_for_commit()
921 wait_for_commit(cur_trans, TRANS_STATE_COMPLETED); in btrfs_wait_for_commit()
922 btrfs_put_transaction(cur_trans); in btrfs_wait_for_commit()
944 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_should_end_transaction() local
946 if (cur_trans->state >= TRANS_STATE_COMMIT_START || in btrfs_should_end_transaction()
947 test_bit(BTRFS_DELAYED_REFS_FLUSHING, &cur_trans->delayed_refs.flags)) in btrfs_should_end_transaction()
978 struct btrfs_transaction *cur_trans = trans->transaction; in __btrfs_end_transaction() local
997 WARN_ON(cur_trans != info->running_transaction); in __btrfs_end_transaction()
998 WARN_ON(atomic_read(&cur_trans->num_writers) < 1); in __btrfs_end_transaction()
999 atomic_dec(&cur_trans->num_writers); in __btrfs_end_transaction()
1000 extwriter_counter_dec(cur_trans, trans->type); in __btrfs_end_transaction()
1002 cond_wake_up(&cur_trans->writer_wait); in __btrfs_end_transaction()
1007 btrfs_put_transaction(cur_trans); in __btrfs_end_transaction()
1928 struct btrfs_transaction *cur_trans; in btrfs_commit_transaction_async() local
1935 cur_trans = trans->transaction; in btrfs_commit_transaction_async()
1936 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction_async()
1946 cur_trans->state >= TRANS_STATE_COMMIT_START || in btrfs_commit_transaction_async()
1947 TRANS_ABORTED(cur_trans)); in btrfs_commit_transaction_async()
1948 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction_async()
1954 struct btrfs_transaction *cur_trans = trans->transaction; in cleanup_transaction() local
1967 BUG_ON(list_empty(&cur_trans->list)); in cleanup_transaction()
1969 if (cur_trans == fs_info->running_transaction) { in cleanup_transaction()
1970 cur_trans->state = TRANS_STATE_COMMIT_DOING; in cleanup_transaction()
1978 wait_event(cur_trans->writer_wait, in cleanup_transaction()
1979 atomic_read(&cur_trans->num_writers) == 1); in cleanup_transaction()
1992 list_del_init(&cur_trans->list); in cleanup_transaction()
1999 if (cur_trans == fs_info->running_transaction) in cleanup_transaction()
2005 btrfs_put_transaction(cur_trans); in cleanup_transaction()
2006 btrfs_put_transaction(cur_trans); in cleanup_transaction()
2072 struct btrfs_transaction *cur_trans = trans->transaction; in add_pending_snapshot() local
2078 ASSERT(cur_trans->state >= TRANS_STATE_COMMIT_START); in add_pending_snapshot()
2080 list_add(&trans->pending_snapshot->list, &cur_trans->pending_snapshots); in add_pending_snapshot()
2095 struct btrfs_transaction *cur_trans = trans->transaction; in btrfs_commit_transaction() local
2105 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2106 ret = cur_trans->aborted; in btrfs_commit_transaction()
2118 &cur_trans->delayed_refs.flags)) { in btrfs_commit_transaction()
2130 if (!test_bit(BTRFS_TRANS_DIRTY_BG_RUN, &cur_trans->flags)) { in btrfs_commit_transaction()
2148 &cur_trans->flags)) in btrfs_commit_transaction()
2160 if (cur_trans->state >= TRANS_STATE_COMMIT_START) { in btrfs_commit_transaction()
2166 refcount_inc(&cur_trans->use_count); in btrfs_commit_transaction()
2174 wait_for_commit(cur_trans, want_state); in btrfs_commit_transaction()
2176 if (TRANS_ABORTED(cur_trans)) in btrfs_commit_transaction()
2177 ret = cur_trans->aborted; in btrfs_commit_transaction()
2179 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2184 cur_trans->state = TRANS_STATE_COMMIT_START; in btrfs_commit_transaction()
2188 if (cur_trans->list.prev != &fs_info->trans_list) { in btrfs_commit_transaction()
2194 prev_trans = list_entry(cur_trans->list.prev, in btrfs_commit_transaction()
2230 extwriter_counter_dec(cur_trans, trans->type); in btrfs_commit_transaction()
2247 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2248 extwriter_counter_read(cur_trans) == 0); in btrfs_commit_transaction()
2265 wait_event(cur_trans->pending_wait, in btrfs_commit_transaction()
2266 atomic_read(&cur_trans->pending_ordered) == 0); in btrfs_commit_transaction()
2276 cur_trans->state = TRANS_STATE_COMMIT_DOING; in btrfs_commit_transaction()
2286 wait_event(cur_trans->writer_wait, in btrfs_commit_transaction()
2287 atomic_read(&cur_trans->num_writers) == 1); in btrfs_commit_transaction()
2306 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2307 ret = cur_trans->aborted; in btrfs_commit_transaction()
2351 WARN_ON(cur_trans != trans->transaction); in btrfs_commit_transaction()
2384 if (TRANS_ABORTED(cur_trans)) { in btrfs_commit_transaction()
2385 ret = cur_trans->aborted; in btrfs_commit_transaction()
2389 cur_trans = fs_info->running_transaction; in btrfs_commit_transaction()
2394 &cur_trans->switch_commits); in btrfs_commit_transaction()
2399 &cur_trans->switch_commits); in btrfs_commit_transaction()
2405 &cur_trans->switch_commits); in btrfs_commit_transaction()
2410 ASSERT(list_empty(&cur_trans->dirty_bgs)); in btrfs_commit_transaction()
2411 ASSERT(list_empty(&cur_trans->io_bgs)); in btrfs_commit_transaction()
2419 btrfs_commit_device_sizes(cur_trans); in btrfs_commit_transaction()
2437 cur_trans->state = TRANS_STATE_UNBLOCKED; in btrfs_commit_transaction()
2458 btrfs_free_redirty_list(cur_trans); in btrfs_commit_transaction()
2473 cur_trans->state = TRANS_STATE_SUPER_COMMITTED; in btrfs_commit_transaction()
2474 wake_up(&cur_trans->commit_wait); in btrfs_commit_transaction()
2479 if (test_bit(BTRFS_TRANS_HAVE_FREE_BGS, &cur_trans->flags)) in btrfs_commit_transaction()
2482 fs_info->last_trans_committed = cur_trans->transid; in btrfs_commit_transaction()
2487 cur_trans->state = TRANS_STATE_COMPLETED; in btrfs_commit_transaction()
2488 wake_up(&cur_trans->commit_wait); in btrfs_commit_transaction()
2492 list_del_init(&cur_trans->list); in btrfs_commit_transaction()
2495 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()
2496 btrfs_put_transaction(cur_trans); in btrfs_commit_transaction()