Lines Matching refs:fs_info
128 btrfs_err(transaction->fs_info,
156 struct btrfs_fs_info *fs_info = trans->fs_info;
160 down_write(&fs_info->commit_root_sem);
180 btrfs_drop_and_free_fs_root(fs_info, root);
212 &fs_info->caching_block_groups, list) {
223 up_write(&fs_info->commit_root_sem);
257 struct btrfs_fs_info *fs_info = trans->fs_info;
264 btrfs_block_rsv_release(fs_info, &fs_info->chunk_block_rsv,
272 static noinline int join_transaction(struct btrfs_fs_info *fs_info,
277 spin_lock(&fs_info->trans_lock);
280 if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) {
281 spin_unlock(&fs_info->trans_lock);
285 cur_trans = fs_info->running_transaction;
288 spin_unlock(&fs_info->trans_lock);
292 spin_unlock(&fs_info->trans_lock);
298 spin_unlock(&fs_info->trans_lock);
301 spin_unlock(&fs_info->trans_lock);
321 spin_lock(&fs_info->trans_lock);
322 if (fs_info->running_transaction) {
329 } else if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) {
330 spin_unlock(&fs_info->trans_lock);
335 cur_trans->fs_info = fs_info;
362 if (!list_empty(&fs_info->tree_mod_seq_list))
364 if (!RB_EMPTY_ROOT(&fs_info->tree_mod_log))
366 atomic64_set(&fs_info->tree_mod_seq, 0);
380 list_add_tail(&cur_trans->list, &fs_info->trans_list);
381 extent_io_tree_init(fs_info, &cur_trans->dirty_pages,
382 IO_TREE_TRANS_DIRTY_PAGES, fs_info->btree_inode);
383 extent_io_tree_init(fs_info, &cur_trans->pinned_extents,
385 fs_info->generation++;
386 cur_trans->transid = fs_info->generation;
387 fs_info->running_transaction = cur_trans;
389 spin_unlock(&fs_info->trans_lock);
404 struct btrfs_fs_info *fs_info = root->fs_info;
408 WARN_ON(root == fs_info->extent_root);
423 spin_lock(&fs_info->fs_roots_radix_lock);
425 spin_unlock(&fs_info->fs_roots_radix_lock);
428 radix_tree_tag_set(&fs_info->fs_roots_radix,
431 spin_unlock(&fs_info->fs_roots_radix_lock);
464 struct btrfs_fs_info *fs_info = root->fs_info;
473 spin_lock(&fs_info->fs_roots_radix_lock);
474 radix_tree_tag_clear(&fs_info->fs_roots_radix,
477 spin_unlock(&fs_info->fs_roots_radix_lock);
483 struct btrfs_fs_info *fs_info = root->fs_info;
497 mutex_lock(&fs_info->reloc_mutex);
499 mutex_unlock(&fs_info->reloc_mutex);
515 static void wait_current_trans(struct btrfs_fs_info *fs_info)
519 spin_lock(&fs_info->trans_lock);
520 cur_trans = fs_info->running_transaction;
523 spin_unlock(&fs_info->trans_lock);
525 wait_event(fs_info->transaction_wait,
530 spin_unlock(&fs_info->trans_lock);
534 static int may_wait_transaction(struct btrfs_fs_info *fs_info, int type)
536 if (test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags))
547 struct btrfs_fs_info *fs_info = root->fs_info;
549 if (!fs_info->reloc_ctl ||
563 struct btrfs_fs_info *fs_info = root->fs_info;
564 struct btrfs_block_rsv *delayed_refs_rsv = &fs_info->delayed_refs_rsv;
576 if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state))
593 if (num_items && root != fs_info->chunk_root) {
594 struct btrfs_block_rsv *rsv = &fs_info->trans_block_rsv;
597 qgroup_reserved = num_items * fs_info->nodesize;
610 num_bytes = btrfs_calc_insert_metadata_size(fs_info, num_items);
621 num_bytes += fs_info->nodesize;
629 btrfs_migrate_to_delayed_refs_rsv(fs_info, rsv,
645 ret = btrfs_delayed_refs_rsv_refill(fs_info, flush);
667 sb_start_intwrite(fs_info->sb);
669 if (may_wait_transaction(fs_info, type))
670 wait_current_trans(fs_info);
673 ret = join_transaction(fs_info, type);
675 wait_current_trans(fs_info);
685 cur_trans = fs_info->running_transaction;
691 h->fs_info = root->fs_info;
699 may_wait_transaction(fs_info, type)) {
706 trace_btrfs_space_reservation(fs_info, "transaction",
708 h->block_rsv = &fs_info->trans_block_rsv;
726 btrfs_chunk_alloc(h, btrfs_get_alloc_profile(fs_info, flags),
744 sb_end_intwrite(fs_info->sb);
748 btrfs_block_rsv_release(fs_info, &fs_info->trans_block_rsv,
828 ret = btrfs_wait_for_commit(root->fs_info, 0);
842 int btrfs_wait_for_commit(struct btrfs_fs_info *fs_info, u64 transid)
848 if (transid <= fs_info->last_trans_committed)
852 spin_lock(&fs_info->trans_lock);
853 list_for_each_entry(t, &fs_info->trans_list, list) {
865 spin_unlock(&fs_info->trans_lock);
872 if (transid > fs_info->last_trans_committed)
878 spin_lock(&fs_info->trans_lock);
879 list_for_each_entry_reverse(t, &fs_info->trans_list,
889 spin_unlock(&fs_info->trans_lock);
901 void btrfs_throttle(struct btrfs_fs_info *fs_info)
903 wait_current_trans(fs_info);
908 struct btrfs_fs_info *fs_info = trans->fs_info;
910 if (btrfs_check_space_for_delayed_refs(fs_info))
913 return !!btrfs_block_rsv_check(&fs_info->global_block_rsv, 5);
931 struct btrfs_fs_info *fs_info = trans->fs_info;
941 ASSERT(trans->block_rsv == &fs_info->trans_block_rsv);
942 trace_btrfs_space_reservation(fs_info, "transaction",
944 btrfs_block_rsv_release(fs_info, trans->block_rsv,
952 struct btrfs_fs_info *info = trans->fs_info;
1014 int btrfs_write_marked_extents(struct btrfs_fs_info *fs_info,
1019 struct address_space *mapping = fs_info->btree_inode->i_mapping;
1024 atomic_inc(&BTRFS_I(fs_info->btree_inode)->sync_writers);
1060 atomic_dec(&BTRFS_I(fs_info->btree_inode)->sync_writers);
1070 static int __btrfs_wait_marked_extents(struct btrfs_fs_info *fs_info,
1075 struct address_space *mapping = fs_info->btree_inode->i_mapping;
1108 static int btrfs_wait_extents(struct btrfs_fs_info *fs_info,
1114 err = __btrfs_wait_marked_extents(fs_info, dirty_pages);
1115 if (test_and_clear_bit(BTRFS_FS_BTREE_ERR, &fs_info->flags))
1125 struct btrfs_fs_info *fs_info = log_root->fs_info;
1132 err = __btrfs_wait_marked_extents(fs_info, dirty_pages);
1134 test_and_clear_bit(BTRFS_FS_LOG1_ERR, &fs_info->flags))
1138 test_and_clear_bit(BTRFS_FS_LOG2_ERR, &fs_info->flags))
1158 struct btrfs_fs_info *fs_info = trans->fs_info;
1162 ret = btrfs_write_marked_extents(fs_info, dirty_pages, EXTENT_DIRTY);
1164 ret2 = btrfs_wait_extents(fs_info, dirty_pages);
1192 struct btrfs_fs_info *fs_info = root->fs_info;
1193 struct btrfs_root *tree_root = fs_info->tree_root;
1225 struct btrfs_fs_info *fs_info = trans->fs_info;
1232 eb = btrfs_lock_root_node(fs_info->tree_root);
1233 ret = btrfs_cow_block(trans, fs_info->tree_root, eb, NULL,
1264 while (!list_empty(&fs_info->dirty_cowonly_roots)) {
1266 next = fs_info->dirty_cowonly_roots.next;
1271 if (root != fs_info->extent_root)
1291 if (!list_empty(&fs_info->dirty_cowonly_roots))
1294 list_add_tail(&fs_info->extent_root->dirty_list,
1298 fs_info->dev_replace.committed_cursor_left =
1299 fs_info->dev_replace.cursor_left_last_write_of_item;
1311 struct btrfs_fs_info *fs_info = root->fs_info;
1313 spin_lock(&fs_info->trans_lock);
1316 list_add_tail(&root->root_list, &fs_info->dead_roots);
1318 spin_unlock(&fs_info->trans_lock);
1326 struct btrfs_fs_info *fs_info = trans->fs_info;
1331 spin_lock(&fs_info->fs_roots_radix_lock);
1333 ret = radix_tree_gang_lookup_tag(&fs_info->fs_roots_radix,
1343 radix_tree_tag_clear(&fs_info->fs_roots_radix,
1346 spin_unlock(&fs_info->fs_roots_radix_lock);
1364 ret2 = btrfs_update_root(trans, fs_info->tree_root,
1369 spin_lock(&fs_info->fs_roots_radix_lock);
1373 spin_unlock(&fs_info->fs_roots_radix_lock);
1383 struct btrfs_fs_info *info = root->fs_info;
1429 struct btrfs_fs_info *fs_info = src->fs_info;
1437 if (!test_bit(BTRFS_FS_QUOTA_ENABLED, &fs_info->flags))
1452 mutex_lock(&fs_info->tree_log_mutex);
1485 btrfs_handle_fs_error(fs_info, ret,
1489 mutex_unlock(&fs_info->tree_log_mutex);
1515 struct btrfs_fs_info *fs_info = trans->fs_info;
1518 struct btrfs_root *tree_root = fs_info->tree_root;
1569 trace_btrfs_space_reservation(fs_info, "transaction",
1689 pending->snap = btrfs_get_new_fs_root(fs_info, objectid, pending->anon_dev);
1796 static void update_super_roots(struct btrfs_fs_info *fs_info)
1801 super = fs_info->super_copy;
1803 root_item = &fs_info->chunk_root->root_item;
1808 root_item = &fs_info->tree_root->root_item;
1812 if (btrfs_test_opt(fs_info, SPACE_CACHE))
1814 if (test_bit(BTRFS_FS_UPDATE_UUID_TREE_GEN, &fs_info->flags))
1848 static void wait_current_trans_commit_start(struct btrfs_fs_info *fs_info,
1851 wait_event(fs_info->transaction_blocked_wait,
1861 struct btrfs_fs_info *fs_info,
1864 wait_event(fs_info->transaction_wait,
1888 __sb_writers_acquired(ac->newtrans->fs_info->sb, SB_FREEZE_FS);
1899 struct btrfs_fs_info *fs_info = trans->fs_info;
1926 __sb_writers_release(fs_info->sb, SB_FREEZE_FS);
1932 wait_current_trans_commit_start_and_unblock(fs_info, cur_trans);
1934 wait_current_trans_commit_start(fs_info, cur_trans);
1946 struct btrfs_fs_info *fs_info = trans->fs_info;
1953 spin_lock(&fs_info->trans_lock);
1962 if (cur_trans == fs_info->running_transaction) {
1964 spin_unlock(&fs_info->trans_lock);
1968 spin_lock(&fs_info->trans_lock);
1981 spin_unlock(&fs_info->trans_lock);
1983 btrfs_cleanup_one_transaction(trans->transaction, fs_info);
1985 spin_lock(&fs_info->trans_lock);
1986 if (cur_trans == fs_info->running_transaction)
1987 fs_info->running_transaction = NULL;
1988 spin_unlock(&fs_info->trans_lock);
1991 sb_end_intwrite(fs_info->sb);
1999 btrfs_scrub_cancel(fs_info);
2010 struct btrfs_fs_info *fs_info = trans->fs_info;
2014 btrfs_delayed_refs_rsv_release(fs_info, 1);
2021 struct btrfs_fs_info *fs_info = trans->fs_info;
2032 if (btrfs_test_opt(fs_info, FLUSHONCOMMIT)) {
2033 writeback_inodes_sb(fs_info->sb, WB_REASON_SYNC);
2058 struct btrfs_fs_info *fs_info = trans->fs_info;
2060 if (btrfs_test_opt(fs_info, FLUSHONCOMMIT)) {
2061 btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
2080 struct btrfs_fs_info *fs_info = trans->fs_info;
2147 mutex_lock(&fs_info->ro_block_group_mutex);
2151 mutex_unlock(&fs_info->ro_block_group_mutex);
2162 spin_lock(&fs_info->trans_lock);
2164 spin_unlock(&fs_info->trans_lock);
2179 wake_up(&fs_info->transaction_blocked_wait);
2181 if (cur_trans->list.prev != &fs_info->trans_list) {
2186 spin_unlock(&fs_info->trans_lock);
2195 spin_unlock(&fs_info->trans_lock);
2198 spin_unlock(&fs_info->trans_lock);
2201 * from the list of transactions at fs_info->trans_list. So we
2205 if (test_bit(BTRFS_FS_STATE_TRANS_ABORTED, &fs_info->fs_state)) {
2239 btrfs_scrub_pause(fs_info);
2245 spin_lock(&fs_info->trans_lock);
2247 spin_unlock(&fs_info->trans_lock);
2260 mutex_lock(&fs_info->reloc_mutex);
2293 btrfs_assert_delayed_root_empty(fs_info);
2310 mutex_lock(&fs_info->tree_log_mutex);
2320 btrfs_apply_pending_changes(fs_info);
2325 btrfs_free_log_root_tree(trans, fs_info);
2356 cur_trans = fs_info->running_transaction;
2358 btrfs_set_root_node(&fs_info->tree_root->root_item,
2359 fs_info->tree_root->node);
2360 list_add_tail(&fs_info->tree_root->dirty_list,
2363 btrfs_set_root_node(&fs_info->chunk_root->root_item,
2364 fs_info->chunk_root->node);
2365 list_add_tail(&fs_info->chunk_root->dirty_list,
2372 update_super_roots(fs_info);
2374 btrfs_set_super_log_root(fs_info->super_copy, 0);
2375 btrfs_set_super_log_root_level(fs_info->super_copy, 0);
2376 memcpy(fs_info->super_for_commit, fs_info->super_copy,
2377 sizeof(*fs_info->super_copy));
2381 clear_bit(BTRFS_FS_LOG1_ERR, &fs_info->flags);
2382 clear_bit(BTRFS_FS_LOG2_ERR, &fs_info->flags);
2386 spin_lock(&fs_info->trans_lock);
2388 fs_info->running_transaction = NULL;
2389 spin_unlock(&fs_info->trans_lock);
2390 mutex_unlock(&fs_info->reloc_mutex);
2392 wake_up(&fs_info->transaction_wait);
2396 btrfs_handle_fs_error(fs_info, ret,
2402 mutex_unlock(&fs_info->tree_log_mutex);
2406 ret = write_all_supers(fs_info, 0);
2411 mutex_unlock(&fs_info->tree_log_mutex);
2418 btrfs_clear_space_info_full(fs_info);
2420 fs_info->last_trans_committed = cur_trans->transid;
2428 spin_lock(&fs_info->trans_lock);
2430 spin_unlock(&fs_info->trans_lock);
2436 sb_end_intwrite(fs_info->sb);
2440 btrfs_scrub_continue(fs_info);
2450 mutex_unlock(&fs_info->tree_log_mutex);
2452 mutex_unlock(&fs_info->reloc_mutex);
2454 btrfs_scrub_continue(fs_info);
2460 btrfs_warn(fs_info, "Skipping commit of aborted transaction.");
2481 struct btrfs_fs_info *fs_info = root->fs_info;
2483 spin_lock(&fs_info->trans_lock);
2484 if (list_empty(&fs_info->dead_roots)) {
2485 spin_unlock(&fs_info->trans_lock);
2488 root = list_first_entry(&fs_info->dead_roots,
2491 spin_unlock(&fs_info->trans_lock);
2493 btrfs_debug(fs_info, "cleaner removing %llu", root->root_key.objectid);
2511 void btrfs_apply_pending_changes(struct btrfs_fs_info *fs_info)
2516 prev = xchg(&fs_info->pending_changes, 0);
2522 btrfs_set_opt(fs_info->mount_opt, INODE_MAP_CACHE);
2527 btrfs_clear_opt(fs_info->mount_opt, INODE_MAP_CACHE);
2532 btrfs_debug(fs_info, "pending commit done");
2536 btrfs_warn(fs_info,