Lines Matching refs:fs_info

147 			btrfs_err(transaction->fs_info,  in btrfs_put_transaction()
175 struct btrfs_fs_info *fs_info = trans->fs_info; in switch_commit_roots() local
184 down_write(&fs_info->commit_root_sem); in switch_commit_roots()
186 if (test_bit(BTRFS_FS_RELOC_RUNNING, &fs_info->flags)) in switch_commit_roots()
187 fs_info->last_reloc_trans = trans->transid; in switch_commit_roots()
206 btrfs_drop_and_free_fs_root(fs_info, root); in switch_commit_roots()
211 up_write(&fs_info->commit_root_sem); in switch_commit_roots()
248 struct btrfs_fs_info *fs_info = trans->fs_info; in btrfs_trans_release_chunk_metadata() local
253 btrfs_block_rsv_release(fs_info, &fs_info->chunk_block_rsv, in btrfs_trans_release_chunk_metadata()
261 static noinline int join_transaction(struct btrfs_fs_info *fs_info, in join_transaction() argument
266 spin_lock(&fs_info->trans_lock); in join_transaction()
269 if (BTRFS_FS_ERROR(fs_info)) { in join_transaction()
270 spin_unlock(&fs_info->trans_lock); in join_transaction()
274 cur_trans = fs_info->running_transaction; in join_transaction()
277 spin_unlock(&fs_info->trans_lock); in join_transaction()
281 spin_unlock(&fs_info->trans_lock); in join_transaction()
287 spin_unlock(&fs_info->trans_lock); in join_transaction()
288 btrfs_lockdep_acquire(fs_info, btrfs_trans_num_writers); in join_transaction()
289 btrfs_lockdep_acquire(fs_info, btrfs_trans_num_extwriters); in join_transaction()
292 spin_unlock(&fs_info->trans_lock); in join_transaction()
311 btrfs_lockdep_acquire(fs_info, btrfs_trans_num_writers); in join_transaction()
312 btrfs_lockdep_acquire(fs_info, btrfs_trans_num_extwriters); in join_transaction()
314 spin_lock(&fs_info->trans_lock); in join_transaction()
315 if (fs_info->running_transaction) { in join_transaction()
320 btrfs_lockdep_release(fs_info, btrfs_trans_num_extwriters); in join_transaction()
321 btrfs_lockdep_release(fs_info, btrfs_trans_num_writers); in join_transaction()
324 } else if (BTRFS_FS_ERROR(fs_info)) { in join_transaction()
325 spin_unlock(&fs_info->trans_lock); in join_transaction()
326 btrfs_lockdep_release(fs_info, btrfs_trans_num_extwriters); in join_transaction()
327 btrfs_lockdep_release(fs_info, btrfs_trans_num_writers); in join_transaction()
332 cur_trans->fs_info = fs_info; in join_transaction()
359 if (!list_empty(&fs_info->tree_mod_seq_list)) in join_transaction()
361 if (!RB_EMPTY_ROOT(&fs_info->tree_mod_log)) in join_transaction()
363 atomic64_set(&fs_info->tree_mod_seq, 0); 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()
384 fs_info->generation++; in join_transaction()
385 cur_trans->transid = fs_info->generation; in join_transaction()
386 fs_info->running_transaction = cur_trans; in join_transaction()
388 spin_unlock(&fs_info->trans_lock); in join_transaction()
403 struct btrfs_fs_info *fs_info = root->fs_info; in record_root_in_trans() local
422 spin_lock(&fs_info->fs_roots_radix_lock); in record_root_in_trans()
424 spin_unlock(&fs_info->fs_roots_radix_lock); in record_root_in_trans()
427 radix_tree_tag_set(&fs_info->fs_roots_radix, in record_root_in_trans()
430 spin_unlock(&fs_info->fs_roots_radix_lock); in record_root_in_trans()
463 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_add_dropped_root() local
472 spin_lock(&fs_info->fs_roots_radix_lock); in btrfs_add_dropped_root()
473 radix_tree_tag_clear(&fs_info->fs_roots_radix, in btrfs_add_dropped_root()
476 spin_unlock(&fs_info->fs_roots_radix_lock); in btrfs_add_dropped_root()
482 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_record_root_in_trans() local
497 mutex_lock(&fs_info->reloc_mutex); in btrfs_record_root_in_trans()
499 mutex_unlock(&fs_info->reloc_mutex); in btrfs_record_root_in_trans()
515 static void wait_current_trans(struct btrfs_fs_info *fs_info) in wait_current_trans() argument
519 spin_lock(&fs_info->trans_lock); in wait_current_trans()
520 cur_trans = fs_info->running_transaction; in wait_current_trans()
523 spin_unlock(&fs_info->trans_lock); in wait_current_trans()
525 btrfs_might_wait_for_state(fs_info, BTRFS_LOCKDEP_TRANS_UNBLOCKED); in wait_current_trans()
526 wait_event(fs_info->transaction_wait, in wait_current_trans()
531 spin_unlock(&fs_info->trans_lock); in wait_current_trans()
535 static int may_wait_transaction(struct btrfs_fs_info *fs_info, int type) in may_wait_transaction() argument
537 if (test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags)) in may_wait_transaction()
548 struct btrfs_fs_info *fs_info = root->fs_info; in need_reserve_reloc_root() local
550 if (!fs_info->reloc_ctl || in need_reserve_reloc_root()
564 struct btrfs_fs_info *fs_info = root->fs_info; in start_transaction() local
565 struct btrfs_block_rsv *delayed_refs_rsv = &fs_info->delayed_refs_rsv; in start_transaction()
574 if (BTRFS_FS_ERROR(fs_info)) in start_transaction()
591 if (num_items && root != fs_info->chunk_root) { in start_transaction()
592 struct btrfs_block_rsv *rsv = &fs_info->trans_block_rsv; in start_transaction()
595 qgroup_reserved = num_items * fs_info->nodesize; in start_transaction()
608 num_bytes = btrfs_calc_insert_metadata_size(fs_info, num_items); in start_transaction()
619 num_bytes += fs_info->nodesize; in start_transaction()
623 ret = btrfs_block_rsv_add(fs_info, rsv, num_bytes, flush); in start_transaction()
627 btrfs_migrate_to_delayed_refs_rsv(fs_info, rsv, in start_transaction()
643 ret = btrfs_delayed_refs_rsv_refill(fs_info, flush); in start_transaction()
665 sb_start_intwrite(fs_info->sb); in start_transaction()
667 if (may_wait_transaction(fs_info, type)) in start_transaction()
668 wait_current_trans(fs_info); in start_transaction()
671 ret = join_transaction(fs_info, type); in start_transaction()
673 wait_current_trans(fs_info); in start_transaction()
683 cur_trans = fs_info->running_transaction; in start_transaction()
688 h->fs_info = root->fs_info; in start_transaction()
695 may_wait_transaction(fs_info, type)) { in start_transaction()
702 trace_btrfs_space_reservation(fs_info, "transaction", in start_transaction()
704 h->block_rsv = &fs_info->trans_block_rsv; in start_transaction()
722 btrfs_chunk_alloc(h, btrfs_get_alloc_profile(fs_info, flags), in start_transaction()
749 sb_end_intwrite(fs_info->sb); in start_transaction()
753 btrfs_block_rsv_release(fs_info, &fs_info->trans_block_rsv, in start_transaction()
831 btrfs_wait_for_commit(root->fs_info, 0); in btrfs_attach_transaction_barrier()
840 struct btrfs_fs_info *fs_info = commit->fs_info; in wait_for_commit() local
849 btrfs_might_wait_for_state(fs_info, BTRFS_LOCKDEP_TRANS_COMPLETED); in wait_for_commit()
851 btrfs_might_wait_for_state(fs_info, BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED); in wait_for_commit()
868 spin_lock(&fs_info->trans_lock); in wait_for_commit()
869 commit = list_first_entry_or_null(&fs_info->trans_list, in wait_for_commit()
873 spin_unlock(&fs_info->trans_lock); in wait_for_commit()
878 spin_unlock(&fs_info->trans_lock); in wait_for_commit()
882 int btrfs_wait_for_commit(struct btrfs_fs_info *fs_info, u64 transid) in btrfs_wait_for_commit() argument
888 if (transid <= fs_info->last_trans_committed) in btrfs_wait_for_commit()
892 spin_lock(&fs_info->trans_lock); in btrfs_wait_for_commit()
893 list_for_each_entry(t, &fs_info->trans_list, list) { in btrfs_wait_for_commit()
905 spin_unlock(&fs_info->trans_lock); in btrfs_wait_for_commit()
912 if (transid > fs_info->last_trans_committed) in btrfs_wait_for_commit()
918 spin_lock(&fs_info->trans_lock); in btrfs_wait_for_commit()
919 list_for_each_entry_reverse(t, &fs_info->trans_list, in btrfs_wait_for_commit()
929 spin_unlock(&fs_info->trans_lock); in btrfs_wait_for_commit()
940 void btrfs_throttle(struct btrfs_fs_info *fs_info) in btrfs_throttle() argument
942 wait_current_trans(fs_info); in btrfs_throttle()
947 struct btrfs_fs_info *fs_info = trans->fs_info; in should_end_transaction() local
949 if (btrfs_check_space_for_delayed_refs(fs_info)) in should_end_transaction()
952 return !!btrfs_block_rsv_check(&fs_info->global_block_rsv, 50); in should_end_transaction()
969 struct btrfs_fs_info *fs_info = trans->fs_info; in btrfs_trans_release_metadata() local
979 ASSERT(trans->block_rsv == &fs_info->trans_block_rsv); in btrfs_trans_release_metadata()
980 trace_btrfs_space_reservation(fs_info, "transaction", in btrfs_trans_release_metadata()
982 btrfs_block_rsv_release(fs_info, trans->block_rsv, in btrfs_trans_release_metadata()
990 struct btrfs_fs_info *info = trans->fs_info; in __btrfs_end_transaction()
1055 int btrfs_write_marked_extents(struct btrfs_fs_info *fs_info, in btrfs_write_marked_extents() argument
1060 struct address_space *mapping = fs_info->btree_inode->i_mapping; in btrfs_write_marked_extents()
1065 atomic_inc(&BTRFS_I(fs_info->btree_inode)->sync_writers); in btrfs_write_marked_extents()
1101 atomic_dec(&BTRFS_I(fs_info->btree_inode)->sync_writers); in btrfs_write_marked_extents()
1111 static int __btrfs_wait_marked_extents(struct btrfs_fs_info *fs_info, in __btrfs_wait_marked_extents() argument
1116 struct address_space *mapping = fs_info->btree_inode->i_mapping; in __btrfs_wait_marked_extents()
1149 static int btrfs_wait_extents(struct btrfs_fs_info *fs_info, in btrfs_wait_extents() argument
1155 err = __btrfs_wait_marked_extents(fs_info, dirty_pages); in btrfs_wait_extents()
1156 if (test_and_clear_bit(BTRFS_FS_BTREE_ERR, &fs_info->flags)) in btrfs_wait_extents()
1166 struct btrfs_fs_info *fs_info = log_root->fs_info; in btrfs_wait_tree_log_extents() local
1173 err = __btrfs_wait_marked_extents(fs_info, dirty_pages); in btrfs_wait_tree_log_extents()
1175 test_and_clear_bit(BTRFS_FS_LOG1_ERR, &fs_info->flags)) in btrfs_wait_tree_log_extents()
1179 test_and_clear_bit(BTRFS_FS_LOG2_ERR, &fs_info->flags)) in btrfs_wait_tree_log_extents()
1199 struct btrfs_fs_info *fs_info = trans->fs_info; in btrfs_write_and_wait_transaction() local
1203 ret = btrfs_write_marked_extents(fs_info, dirty_pages, EXTENT_DIRTY); in btrfs_write_and_wait_transaction()
1205 ret2 = btrfs_wait_extents(fs_info, dirty_pages); in btrfs_write_and_wait_transaction()
1233 struct btrfs_fs_info *fs_info = root->fs_info; in update_cowonly_root() local
1234 struct btrfs_root *tree_root = fs_info->tree_root; in update_cowonly_root()
1266 struct btrfs_fs_info *fs_info = trans->fs_info; in commit_cowonly_roots() local
1279 eb = btrfs_lock_root_node(fs_info->tree_root); in commit_cowonly_roots()
1280 ret = btrfs_cow_block(trans, fs_info->tree_root, eb, NULL, in commit_cowonly_roots()
1303 while (!list_empty(&fs_info->dirty_cowonly_roots)) { in commit_cowonly_roots()
1305 next = fs_info->dirty_cowonly_roots.next; in commit_cowonly_roots()
1338 if (!list_empty(&fs_info->dirty_cowonly_roots)) in commit_cowonly_roots()
1342 fs_info->dev_replace.committed_cursor_left = in commit_cowonly_roots()
1343 fs_info->dev_replace.cursor_left_last_write_of_item; in commit_cowonly_roots()
1352 void btrfs_maybe_wake_unfinished_drop(struct btrfs_fs_info *fs_info) in btrfs_maybe_wake_unfinished_drop() argument
1359 spin_lock(&fs_info->trans_lock); in btrfs_maybe_wake_unfinished_drop()
1360 if (!list_empty(&fs_info->dead_roots)) { in btrfs_maybe_wake_unfinished_drop()
1361 struct btrfs_root *root = list_first_entry(&fs_info->dead_roots, in btrfs_maybe_wake_unfinished_drop()
1365 spin_unlock(&fs_info->trans_lock); in btrfs_maybe_wake_unfinished_drop()
1369 spin_unlock(&fs_info->trans_lock); in btrfs_maybe_wake_unfinished_drop()
1371 btrfs_wake_unfinished_drop(fs_info); in btrfs_maybe_wake_unfinished_drop()
1381 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_add_dead_root() local
1383 spin_lock(&fs_info->trans_lock); in btrfs_add_dead_root()
1389 list_add(&root->root_list, &fs_info->dead_roots); in btrfs_add_dead_root()
1391 list_add_tail(&root->root_list, &fs_info->dead_roots); in btrfs_add_dead_root()
1393 spin_unlock(&fs_info->trans_lock); in btrfs_add_dead_root()
1402 struct btrfs_fs_info *fs_info = trans->fs_info; in commit_fs_roots() local
1413 spin_lock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1415 ret = radix_tree_gang_lookup_tag(&fs_info->fs_roots_radix, in commit_fs_roots()
1433 radix_tree_tag_clear(&fs_info->fs_roots_radix, in commit_fs_roots()
1436 spin_unlock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1454 ret2 = btrfs_update_root(trans, fs_info->tree_root, in commit_fs_roots()
1459 spin_lock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1463 spin_unlock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1473 struct btrfs_fs_info *info = root->fs_info; in btrfs_defrag_root()
1519 struct btrfs_fs_info *fs_info = src->fs_info; in qgroup_account_snapshot() local
1527 if (!test_bit(BTRFS_FS_QUOTA_ENABLED, &fs_info->flags)) in qgroup_account_snapshot()
1588 btrfs_handle_fs_error(fs_info, ret, in qgroup_account_snapshot()
1616 struct btrfs_fs_info *fs_info = trans->fs_info; in create_pending_snapshot() local
1619 struct btrfs_root *tree_root = fs_info->tree_root; in create_pending_snapshot()
1669 pending->error = btrfs_block_rsv_add(fs_info, in create_pending_snapshot()
1684 trace_btrfs_space_reservation(fs_info, "transaction", in create_pending_snapshot()
1804 pending->snap = btrfs_get_new_fs_root(fs_info, objectid, pending->anon_dev); in create_pending_snapshot()
1901 static void update_super_roots(struct btrfs_fs_info *fs_info) in update_super_roots() argument
1906 super = fs_info->super_copy; in update_super_roots()
1908 root_item = &fs_info->chunk_root->root_item; in update_super_roots()
1913 root_item = &fs_info->tree_root->root_item; in update_super_roots()
1917 if (btrfs_test_opt(fs_info, SPACE_CACHE)) in update_super_roots()
1919 else if (test_bit(BTRFS_FS_CLEANUP_SPACE_CACHE_V1, &fs_info->flags)) in update_super_roots()
1921 if (test_bit(BTRFS_FS_UPDATE_UUID_TREE_GEN, &fs_info->flags)) in update_super_roots()
1953 struct btrfs_fs_info *fs_info = trans->fs_info; in btrfs_commit_transaction_async() local
1957 set_bit(BTRFS_FS_COMMIT_TRANS, &fs_info->flags); in btrfs_commit_transaction_async()
1958 wake_up_process(fs_info->transaction_kthread); in btrfs_commit_transaction_async()
1970 btrfs_might_wait_for_state(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START); in btrfs_commit_transaction_async()
1971 wait_event(fs_info->transaction_blocked_wait, in btrfs_commit_transaction_async()
1979 struct btrfs_fs_info *fs_info = trans->fs_info; in cleanup_transaction() local
1986 spin_lock(&fs_info->trans_lock); in cleanup_transaction()
1995 if (cur_trans == fs_info->running_transaction) { in cleanup_transaction()
1997 spin_unlock(&fs_info->trans_lock); in cleanup_transaction()
2003 btrfs_might_wait_for_event(fs_info, btrfs_trans_num_writers); in cleanup_transaction()
2007 spin_lock(&fs_info->trans_lock); in cleanup_transaction()
2020 spin_unlock(&fs_info->trans_lock); in cleanup_transaction()
2022 btrfs_cleanup_one_transaction(trans->transaction, fs_info); in cleanup_transaction()
2024 spin_lock(&fs_info->trans_lock); in cleanup_transaction()
2025 if (cur_trans == fs_info->running_transaction) in cleanup_transaction()
2026 fs_info->running_transaction = NULL; in cleanup_transaction()
2027 spin_unlock(&fs_info->trans_lock); in cleanup_transaction()
2030 sb_end_intwrite(fs_info->sb); in cleanup_transaction()
2034 trace_btrfs_transaction_commit(fs_info); in cleanup_transaction()
2038 btrfs_scrub_cancel(fs_info); in cleanup_transaction()
2049 struct btrfs_fs_info *fs_info = trans->fs_info; in btrfs_cleanup_pending_block_groups() local
2053 btrfs_delayed_refs_rsv_release(fs_info, 1); in btrfs_cleanup_pending_block_groups()
2058 static inline int btrfs_start_delalloc_flush(struct btrfs_fs_info *fs_info) in btrfs_start_delalloc_flush() argument
2077 if (btrfs_test_opt(fs_info, FLUSHONCOMMIT)) in btrfs_start_delalloc_flush()
2078 try_to_writeback_inodes_sb(fs_info->sb, WB_REASON_SYNC); in btrfs_start_delalloc_flush()
2082 static inline void btrfs_wait_delalloc_flush(struct btrfs_fs_info *fs_info) in btrfs_wait_delalloc_flush() argument
2084 if (btrfs_test_opt(fs_info, FLUSHONCOMMIT)) in btrfs_wait_delalloc_flush()
2085 btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1); in btrfs_wait_delalloc_flush()
2103 lockdep_assert_held(&trans->fs_info->trans_lock); in add_pending_snapshot()
2109 static void update_commit_stats(struct btrfs_fs_info *fs_info, ktime_t interval) in update_commit_stats() argument
2111 fs_info->commit_stats.commit_count++; in update_commit_stats()
2112 fs_info->commit_stats.last_commit_dur = interval; in update_commit_stats()
2113 fs_info->commit_stats.max_commit_dur = in update_commit_stats()
2114 max_t(u64, fs_info->commit_stats.max_commit_dur, interval); in update_commit_stats()
2115 fs_info->commit_stats.total_commit_dur += interval; in update_commit_stats()
2120 struct btrfs_fs_info *fs_info = trans->fs_info; in btrfs_commit_transaction() local
2128 btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START); in btrfs_commit_transaction()
2130 clear_bit(BTRFS_FS_NEED_TRANS_COMMIT, &fs_info->flags); in btrfs_commit_transaction()
2174 mutex_lock(&fs_info->ro_block_group_mutex); in btrfs_commit_transaction()
2178 mutex_unlock(&fs_info->ro_block_group_mutex); in btrfs_commit_transaction()
2187 spin_lock(&fs_info->trans_lock); in btrfs_commit_transaction()
2193 spin_unlock(&fs_info->trans_lock); in btrfs_commit_transaction()
2199 btrfs_trans_state_lockdep_release(fs_info, in btrfs_commit_transaction()
2213 wake_up(&fs_info->transaction_blocked_wait); in btrfs_commit_transaction()
2214 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START); in btrfs_commit_transaction()
2216 if (cur_trans->list.prev != &fs_info->trans_list) { in btrfs_commit_transaction()
2226 spin_unlock(&fs_info->trans_lock); in btrfs_commit_transaction()
2236 spin_unlock(&fs_info->trans_lock); in btrfs_commit_transaction()
2239 spin_unlock(&fs_info->trans_lock); in btrfs_commit_transaction()
2246 if (BTRFS_FS_ERROR(fs_info)) { in btrfs_commit_transaction()
2260 ret = btrfs_start_delalloc_flush(fs_info); in btrfs_commit_transaction()
2273 btrfs_lockdep_release(fs_info, btrfs_trans_num_extwriters); in btrfs_commit_transaction()
2274 btrfs_might_wait_for_event(fs_info, btrfs_trans_num_extwriters); in btrfs_commit_transaction()
2281 btrfs_lockdep_release(fs_info, btrfs_trans_num_writers); in btrfs_commit_transaction()
2285 btrfs_wait_delalloc_flush(fs_info); in btrfs_commit_transaction()
2292 btrfs_might_wait_for_event(fs_info, btrfs_trans_pending_ordered); in btrfs_commit_transaction()
2296 btrfs_scrub_pause(fs_info); in btrfs_commit_transaction()
2302 spin_lock(&fs_info->trans_lock); in btrfs_commit_transaction()
2305 spin_unlock(&fs_info->trans_lock); in btrfs_commit_transaction()
2312 btrfs_lockdep_release(fs_info, btrfs_trans_num_writers); in btrfs_commit_transaction()
2313 btrfs_might_wait_for_event(fs_info, btrfs_trans_num_writers); in btrfs_commit_transaction()
2323 btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_COMPLETED); in btrfs_commit_transaction()
2324 btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED); in btrfs_commit_transaction()
2325 btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_UNBLOCKED); in btrfs_commit_transaction()
2332 clear_bit(BTRFS_FS_COMMIT_TRANS, &fs_info->flags); in btrfs_commit_transaction()
2336 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_UNBLOCKED); in btrfs_commit_transaction()
2344 mutex_lock(&fs_info->reloc_mutex); in btrfs_commit_transaction()
2377 btrfs_assert_delayed_root_empty(fs_info); in btrfs_commit_transaction()
2388 btrfs_free_log_root_tree(trans, fs_info); in btrfs_commit_transaction()
2411 cur_trans = fs_info->running_transaction; in btrfs_commit_transaction()
2413 btrfs_set_root_node(&fs_info->tree_root->root_item, in btrfs_commit_transaction()
2414 fs_info->tree_root->node); in btrfs_commit_transaction()
2415 list_add_tail(&fs_info->tree_root->dirty_list, in btrfs_commit_transaction()
2418 btrfs_set_root_node(&fs_info->chunk_root->root_item, in btrfs_commit_transaction()
2419 fs_info->chunk_root->node); in btrfs_commit_transaction()
2420 list_add_tail(&fs_info->chunk_root->dirty_list, in btrfs_commit_transaction()
2423 if (btrfs_fs_incompat(fs_info, EXTENT_TREE_V2)) { in btrfs_commit_transaction()
2424 btrfs_set_root_node(&fs_info->block_group_root->root_item, in btrfs_commit_transaction()
2425 fs_info->block_group_root->node); in btrfs_commit_transaction()
2426 list_add_tail(&fs_info->block_group_root->dirty_list, in btrfs_commit_transaction()
2434 update_super_roots(fs_info); in btrfs_commit_transaction()
2436 btrfs_set_super_log_root(fs_info->super_copy, 0); in btrfs_commit_transaction()
2437 btrfs_set_super_log_root_level(fs_info->super_copy, 0); in btrfs_commit_transaction()
2438 memcpy(fs_info->super_for_commit, fs_info->super_copy, in btrfs_commit_transaction()
2439 sizeof(*fs_info->super_copy)); in btrfs_commit_transaction()
2443 clear_bit(BTRFS_FS_LOG1_ERR, &fs_info->flags); in btrfs_commit_transaction()
2444 clear_bit(BTRFS_FS_LOG2_ERR, &fs_info->flags); in btrfs_commit_transaction()
2456 mutex_lock(&fs_info->tree_log_mutex); in btrfs_commit_transaction()
2458 spin_lock(&fs_info->trans_lock); in btrfs_commit_transaction()
2460 fs_info->running_transaction = NULL; in btrfs_commit_transaction()
2461 spin_unlock(&fs_info->trans_lock); in btrfs_commit_transaction()
2462 mutex_unlock(&fs_info->reloc_mutex); in btrfs_commit_transaction()
2464 wake_up(&fs_info->transaction_wait); in btrfs_commit_transaction()
2465 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_UNBLOCKED); in btrfs_commit_transaction()
2468 if (test_bit(BTRFS_FS_FEATURE_CHANGED, &fs_info->flags) && in btrfs_commit_transaction()
2469 fs_info->cleaner_kthread) in btrfs_commit_transaction()
2470 wake_up_process(fs_info->cleaner_kthread); in btrfs_commit_transaction()
2474 btrfs_handle_fs_error(fs_info, ret, in btrfs_commit_transaction()
2476 mutex_unlock(&fs_info->tree_log_mutex); in btrfs_commit_transaction()
2487 ret = write_all_supers(fs_info, 0); in btrfs_commit_transaction()
2492 mutex_unlock(&fs_info->tree_log_mutex); in btrfs_commit_transaction()
2502 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED); in btrfs_commit_transaction()
2507 btrfs_clear_space_info_full(fs_info); in btrfs_commit_transaction()
2509 fs_info->last_trans_committed = cur_trans->transid; in btrfs_commit_transaction()
2516 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMPLETED); in btrfs_commit_transaction()
2518 spin_lock(&fs_info->trans_lock); in btrfs_commit_transaction()
2520 spin_unlock(&fs_info->trans_lock); in btrfs_commit_transaction()
2526 sb_end_intwrite(fs_info->sb); in btrfs_commit_transaction()
2528 trace_btrfs_transaction_commit(fs_info); in btrfs_commit_transaction()
2532 btrfs_scrub_continue(fs_info); in btrfs_commit_transaction()
2539 update_commit_stats(fs_info, interval); in btrfs_commit_transaction()
2544 mutex_unlock(&fs_info->reloc_mutex); in btrfs_commit_transaction()
2545 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_UNBLOCKED); in btrfs_commit_transaction()
2547 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED); in btrfs_commit_transaction()
2548 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMPLETED); in btrfs_commit_transaction()
2549 btrfs_scrub_continue(fs_info); in btrfs_commit_transaction()
2555 btrfs_warn(fs_info, "Skipping commit of aborted transaction."); in btrfs_commit_transaction()
2563 btrfs_lockdep_release(fs_info, btrfs_trans_num_extwriters); in btrfs_commit_transaction()
2564 btrfs_lockdep_release(fs_info, btrfs_trans_num_writers); in btrfs_commit_transaction()
2568 btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START); in btrfs_commit_transaction()
2583 int btrfs_clean_one_deleted_snapshot(struct btrfs_fs_info *fs_info) in btrfs_clean_one_deleted_snapshot() argument
2588 spin_lock(&fs_info->trans_lock); in btrfs_clean_one_deleted_snapshot()
2589 if (list_empty(&fs_info->dead_roots)) { in btrfs_clean_one_deleted_snapshot()
2590 spin_unlock(&fs_info->trans_lock); in btrfs_clean_one_deleted_snapshot()
2593 root = list_first_entry(&fs_info->dead_roots, in btrfs_clean_one_deleted_snapshot()
2596 spin_unlock(&fs_info->trans_lock); in btrfs_clean_one_deleted_snapshot()
2598 btrfs_debug(fs_info, "cleaner removing %llu", root->root_key.objectid); in btrfs_clean_one_deleted_snapshot()
2629 struct btrfs_fs_info *fs_info = trans->fs_info; in __btrfs_abort_transaction() local
2634 btrfs_dump_space_info_for_trans_abort(fs_info); in __btrfs_abort_transaction()
2636 wake_up(&fs_info->transaction_wait); in __btrfs_abort_transaction()
2637 wake_up(&fs_info->transaction_blocked_wait); in __btrfs_abort_transaction()
2638 __btrfs_handle_fs_error(fs_info, function, line, errno, NULL); in __btrfs_abort_transaction()