Lines Matching refs:fs_info

106 					 struct btrfs_fs_info *fs_info)  in switch_commit_roots()  argument
110 down_write(&fs_info->commit_root_sem); in switch_commit_roots()
120 up_write(&fs_info->commit_root_sem); in switch_commit_roots()
154 struct btrfs_fs_info *fs_info = root->fs_info; in join_transaction() local
156 spin_lock(&fs_info->trans_lock); in join_transaction()
159 if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) { in join_transaction()
160 spin_unlock(&fs_info->trans_lock); in join_transaction()
164 cur_trans = fs_info->running_transaction; in join_transaction()
167 spin_unlock(&fs_info->trans_lock); in join_transaction()
171 spin_unlock(&fs_info->trans_lock); in join_transaction()
177 spin_unlock(&fs_info->trans_lock); in join_transaction()
180 spin_unlock(&fs_info->trans_lock); in join_transaction()
199 spin_lock(&fs_info->trans_lock); in join_transaction()
200 if (fs_info->running_transaction) { in join_transaction()
207 } else if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) { in join_transaction()
208 spin_unlock(&fs_info->trans_lock); in join_transaction()
240 if (!list_empty(&fs_info->tree_mod_seq_list)) in join_transaction()
243 if (!RB_EMPTY_ROOT(&fs_info->tree_mod_log)) in join_transaction()
246 atomic64_set(&fs_info->tree_mod_seq, 0); in join_transaction()
259 list_add_tail(&cur_trans->list, &fs_info->trans_list); in join_transaction()
261 fs_info->btree_inode->i_mapping); in join_transaction()
262 fs_info->generation++; in join_transaction()
263 cur_trans->transid = fs_info->generation; in join_transaction()
264 fs_info->running_transaction = cur_trans; in join_transaction()
266 spin_unlock(&fs_info->trans_lock); in join_transaction()
282 WARN_ON(root == root->fs_info->extent_root); in record_root_in_trans()
297 spin_lock(&root->fs_info->fs_roots_radix_lock); in record_root_in_trans()
299 spin_unlock(&root->fs_info->fs_roots_radix_lock); in record_root_in_trans()
302 radix_tree_tag_set(&root->fs_info->fs_roots_radix, in record_root_in_trans()
305 spin_unlock(&root->fs_info->fs_roots_radix_lock); in record_root_in_trans()
350 mutex_lock(&root->fs_info->reloc_mutex); in btrfs_record_root_in_trans()
352 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_record_root_in_trans()
372 spin_lock(&root->fs_info->trans_lock); in wait_current_trans()
373 cur_trans = root->fs_info->running_transaction; in wait_current_trans()
376 spin_unlock(&root->fs_info->trans_lock); in wait_current_trans()
378 wait_event(root->fs_info->transaction_wait, in wait_current_trans()
383 spin_unlock(&root->fs_info->trans_lock); in wait_current_trans()
389 if (root->fs_info->log_root_recovering) in may_wait_transaction()
396 !atomic_read(&root->fs_info->open_ioctl_trans)) in may_wait_transaction()
404 if (!root->fs_info->reloc_ctl || in need_reserve_reloc_root()
427 if (test_bit(BTRFS_FS_STATE_ERROR, &root->fs_info->fs_state)) in start_transaction()
444 if (num_items > 0 && root != root->fs_info->chunk_root) { in start_transaction()
445 if (root->fs_info->quota_enabled && in start_transaction()
463 &root->fs_info->trans_block_rsv, in start_transaction()
486 sb_start_intwrite(root->fs_info->sb); in start_transaction()
506 cur_trans = root->fs_info->running_transaction; in start_transaction()
538 trace_btrfs_space_reservation(root->fs_info, "transaction", in start_transaction()
540 h->block_rsv = &root->fs_info->trans_block_rsv; in start_transaction()
555 sb_end_intwrite(root->fs_info->sb); in start_transaction()
559 btrfs_block_rsv_release(root, &root->fs_info->trans_block_rsv, in start_transaction()
646 if (transid <= root->fs_info->last_trans_committed) in btrfs_wait_for_commit()
650 spin_lock(&root->fs_info->trans_lock); in btrfs_wait_for_commit()
651 list_for_each_entry(t, &root->fs_info->trans_list, list) { in btrfs_wait_for_commit()
663 spin_unlock(&root->fs_info->trans_lock); in btrfs_wait_for_commit()
670 if (transid > root->fs_info->last_trans_committed) in btrfs_wait_for_commit()
676 spin_lock(&root->fs_info->trans_lock); in btrfs_wait_for_commit()
677 list_for_each_entry_reverse(t, &root->fs_info->trans_list, in btrfs_wait_for_commit()
687 spin_unlock(&root->fs_info->trans_lock); in btrfs_wait_for_commit()
700 if (!atomic_read(&root->fs_info->open_ioctl_trans)) in btrfs_throttle()
707 if (root->fs_info->global_block_rsv.space_info->full && in should_end_transaction()
711 return !!btrfs_block_rsv_check(root, &root->fs_info->global_block_rsv, 5); in should_end_transaction()
741 struct btrfs_fs_info *info = root->fs_info; in __btrfs_end_transaction()
795 if (lock && !atomic_read(&root->fs_info->open_ioctl_trans) && in __btrfs_end_transaction()
812 sb_end_intwrite(root->fs_info->sb); in __btrfs_end_transaction()
831 test_bit(BTRFS_FS_STATE_ERROR, &root->fs_info->fs_state)) { in __btrfs_end_transaction()
867 struct address_space *mapping = root->fs_info->btree_inode->i_mapping; in btrfs_write_marked_extents()
921 struct address_space *mapping = root->fs_info->btree_inode->i_mapping; in btrfs_wait_marked_extents()
925 struct btrfs_inode *btree_ino = BTRFS_I(root->fs_info->btree_inode); in btrfs_wait_marked_extents()
1030 struct btrfs_root *tree_root = root->fs_info->tree_root; in update_cowonly_root()
1063 struct btrfs_fs_info *fs_info = root->fs_info; in commit_cowonly_roots() local
1070 eb = btrfs_lock_root_node(fs_info->tree_root); in commit_cowonly_roots()
1071 ret = btrfs_cow_block(trans, fs_info->tree_root, eb, NULL, in commit_cowonly_roots()
1083 ret = btrfs_run_dev_stats(trans, root->fs_info); in commit_cowonly_roots()
1086 ret = btrfs_run_dev_replace(trans, root->fs_info); in commit_cowonly_roots()
1089 ret = btrfs_run_qgroups(trans, root->fs_info); in commit_cowonly_roots()
1102 while (!list_empty(&fs_info->dirty_cowonly_roots)) { in commit_cowonly_roots()
1103 next = fs_info->dirty_cowonly_roots.next; in commit_cowonly_roots()
1108 if (root != fs_info->extent_root) in commit_cowonly_roots()
1128 if (!list_empty(&fs_info->dirty_cowonly_roots)) in commit_cowonly_roots()
1131 list_add_tail(&fs_info->extent_root->dirty_list, in commit_cowonly_roots()
1133 btrfs_after_dev_replace_commit(fs_info); in commit_cowonly_roots()
1145 spin_lock(&root->fs_info->trans_lock); in btrfs_add_dead_root()
1147 list_add_tail(&root->root_list, &root->fs_info->dead_roots); in btrfs_add_dead_root()
1148 spin_unlock(&root->fs_info->trans_lock); in btrfs_add_dead_root()
1158 struct btrfs_fs_info *fs_info = root->fs_info; in commit_fs_roots() local
1163 spin_lock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1165 ret = radix_tree_gang_lookup_tag(&fs_info->fs_roots_radix, in commit_fs_roots()
1173 radix_tree_tag_clear(&fs_info->fs_roots_radix, in commit_fs_roots()
1176 spin_unlock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1195 err = btrfs_update_root(trans, fs_info->tree_root, in commit_fs_roots()
1198 spin_lock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1203 spin_unlock(&fs_info->fs_roots_radix_lock); in commit_fs_roots()
1213 struct btrfs_fs_info *info = root->fs_info; in btrfs_defrag_root()
1231 if (btrfs_fs_closing(root->fs_info) || ret != -EAGAIN) in btrfs_defrag_root()
1234 if (btrfs_defrag_cancelled(root->fs_info)) { in btrfs_defrag_root()
1254 struct btrfs_fs_info *fs_info, in create_pending_snapshot() argument
1259 struct btrfs_root *tree_root = fs_info->tree_root; in create_pending_snapshot()
1410 ret = btrfs_qgroup_inherit(trans, fs_info, in create_pending_snapshot()
1446 pending->snap = btrfs_read_fs_root_no_name(root->fs_info, &key); in create_pending_snapshot()
1484 ret = btrfs_uuid_tree_add(trans, fs_info->uuid_root, new_uuid.b, in create_pending_snapshot()
1491 ret = btrfs_uuid_tree_add(trans, fs_info->uuid_root, in create_pending_snapshot()
1516 struct btrfs_fs_info *fs_info) in create_pending_snapshots() argument
1524 ret = create_pending_snapshot(trans, fs_info, pending); in create_pending_snapshots()
1536 super = root->fs_info->super_copy; in update_super_roots()
1538 root_item = &root->fs_info->chunk_root->root_item; in update_super_roots()
1543 root_item = &root->fs_info->tree_root->root_item; in update_super_roots()
1549 if (root->fs_info->update_uuid_tree_gen) in update_super_roots()
1586 wait_event(root->fs_info->transaction_blocked_wait, in wait_current_trans_commit_start()
1598 wait_event(root->fs_info->transaction_wait, in wait_current_trans_commit_start_and_unblock()
1624 &ac->root->fs_info->sb->s_writers.lock_map[SB_FREEZE_FS-1], in do_async_commit()
1665 &root->fs_info->sb->s_writers.lock_map[SB_FREEZE_FS-1], in btrfs_commit_transaction_async()
1694 spin_lock(&root->fs_info->trans_lock); in cleanup_transaction()
1704 if (cur_trans == root->fs_info->running_transaction) { in cleanup_transaction()
1706 spin_unlock(&root->fs_info->trans_lock); in cleanup_transaction()
1710 spin_lock(&root->fs_info->trans_lock); in cleanup_transaction()
1712 spin_unlock(&root->fs_info->trans_lock); in cleanup_transaction()
1716 spin_lock(&root->fs_info->trans_lock); in cleanup_transaction()
1717 if (cur_trans == root->fs_info->running_transaction) in cleanup_transaction()
1718 root->fs_info->running_transaction = NULL; in cleanup_transaction()
1719 spin_unlock(&root->fs_info->trans_lock); in cleanup_transaction()
1722 sb_end_intwrite(root->fs_info->sb); in cleanup_transaction()
1730 btrfs_scrub_cancel(root->fs_info); in cleanup_transaction()
1735 static inline int btrfs_start_delalloc_flush(struct btrfs_fs_info *fs_info) in btrfs_start_delalloc_flush() argument
1737 if (btrfs_test_opt(fs_info->tree_root, FLUSHONCOMMIT)) in btrfs_start_delalloc_flush()
1738 return btrfs_start_delalloc_roots(fs_info, 1, -1); in btrfs_start_delalloc_flush()
1742 static inline void btrfs_wait_delalloc_flush(struct btrfs_fs_info *fs_info) in btrfs_wait_delalloc_flush() argument
1744 if (btrfs_test_opt(fs_info->tree_root, FLUSHONCOMMIT)) in btrfs_wait_delalloc_flush()
1745 btrfs_wait_ordered_roots(fs_info, -1); in btrfs_wait_delalloc_flush()
1750 struct btrfs_fs_info *fs_info) in btrfs_wait_pending_ordered() argument
1754 spin_lock(&fs_info->trans_lock); in btrfs_wait_pending_ordered()
1760 spin_unlock(&fs_info->trans_lock); in btrfs_wait_pending_ordered()
1765 spin_lock(&fs_info->trans_lock); in btrfs_wait_pending_ordered()
1767 spin_unlock(&fs_info->trans_lock); in btrfs_wait_pending_ordered()
1775 struct btrfs_inode *btree_ino = BTRFS_I(root->fs_info->btree_inode); in btrfs_commit_transaction()
1835 mutex_lock(&root->fs_info->ro_block_group_mutex); in btrfs_commit_transaction()
1840 mutex_unlock(&root->fs_info->ro_block_group_mutex); in btrfs_commit_transaction()
1850 spin_lock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
1853 spin_unlock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
1868 wake_up(&root->fs_info->transaction_blocked_wait); in btrfs_commit_transaction()
1870 if (cur_trans->list.prev != &root->fs_info->trans_list) { in btrfs_commit_transaction()
1875 spin_unlock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
1884 spin_unlock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
1887 spin_unlock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
1892 ret = btrfs_start_delalloc_flush(root->fs_info); in btrfs_commit_transaction()
1908 btrfs_wait_delalloc_flush(root->fs_info); in btrfs_commit_transaction()
1910 btrfs_wait_pending_ordered(cur_trans, root->fs_info); in btrfs_commit_transaction()
1918 spin_lock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
1920 spin_unlock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
1934 mutex_lock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
1941 ret = create_pending_snapshots(trans, root->fs_info); in btrfs_commit_transaction()
1943 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
1959 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
1965 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
1990 mutex_lock(&root->fs_info->tree_log_mutex); in btrfs_commit_transaction()
1994 mutex_unlock(&root->fs_info->tree_log_mutex); in btrfs_commit_transaction()
1995 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
2003 btrfs_apply_pending_changes(root->fs_info); in btrfs_commit_transaction()
2008 btrfs_free_log_root_tree(trans, root->fs_info); in btrfs_commit_transaction()
2012 mutex_unlock(&root->fs_info->tree_log_mutex); in btrfs_commit_transaction()
2013 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
2023 mutex_unlock(&root->fs_info->tree_log_mutex); in btrfs_commit_transaction()
2024 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
2030 cur_trans = root->fs_info->running_transaction; in btrfs_commit_transaction()
2032 btrfs_set_root_node(&root->fs_info->tree_root->root_item, in btrfs_commit_transaction()
2033 root->fs_info->tree_root->node); in btrfs_commit_transaction()
2034 list_add_tail(&root->fs_info->tree_root->dirty_list, in btrfs_commit_transaction()
2037 btrfs_set_root_node(&root->fs_info->chunk_root->root_item, in btrfs_commit_transaction()
2038 root->fs_info->chunk_root->node); in btrfs_commit_transaction()
2039 list_add_tail(&root->fs_info->chunk_root->dirty_list, in btrfs_commit_transaction()
2042 switch_commit_roots(cur_trans, root->fs_info); in btrfs_commit_transaction()
2049 btrfs_set_super_log_root(root->fs_info->super_copy, 0); in btrfs_commit_transaction()
2050 btrfs_set_super_log_root_level(root->fs_info->super_copy, 0); in btrfs_commit_transaction()
2051 memcpy(root->fs_info->super_for_commit, root->fs_info->super_copy, in btrfs_commit_transaction()
2052 sizeof(*root->fs_info->super_copy)); in btrfs_commit_transaction()
2054 btrfs_update_commit_device_size(root->fs_info); in btrfs_commit_transaction()
2060 spin_lock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
2062 root->fs_info->running_transaction = NULL; in btrfs_commit_transaction()
2063 spin_unlock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
2064 mutex_unlock(&root->fs_info->reloc_mutex); in btrfs_commit_transaction()
2066 wake_up(&root->fs_info->transaction_wait); in btrfs_commit_transaction()
2070 btrfs_error(root->fs_info, ret, in btrfs_commit_transaction()
2072 mutex_unlock(&root->fs_info->tree_log_mutex); in btrfs_commit_transaction()
2078 mutex_unlock(&root->fs_info->tree_log_mutex); in btrfs_commit_transaction()
2086 mutex_unlock(&root->fs_info->tree_log_mutex); in btrfs_commit_transaction()
2091 btrfs_clear_space_info_full(root->fs_info); in btrfs_commit_transaction()
2093 root->fs_info->last_trans_committed = cur_trans->transid; in btrfs_commit_transaction()
2101 spin_lock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
2103 spin_unlock(&root->fs_info->trans_lock); in btrfs_commit_transaction()
2109 sb_end_intwrite(root->fs_info->sb); in btrfs_commit_transaction()
2120 if (current != root->fs_info->transaction_kthread) in btrfs_commit_transaction()
2134 btrfs_warn(root->fs_info, "Skipping commit of aborted transaction."); in btrfs_commit_transaction()
2155 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_clean_one_deleted_snapshot() local
2157 spin_lock(&fs_info->trans_lock); in btrfs_clean_one_deleted_snapshot()
2158 if (list_empty(&fs_info->dead_roots)) { in btrfs_clean_one_deleted_snapshot()
2159 spin_unlock(&fs_info->trans_lock); in btrfs_clean_one_deleted_snapshot()
2162 root = list_first_entry(&fs_info->dead_roots, in btrfs_clean_one_deleted_snapshot()
2165 spin_unlock(&fs_info->trans_lock); in btrfs_clean_one_deleted_snapshot()
2180 void btrfs_apply_pending_changes(struct btrfs_fs_info *fs_info) in btrfs_apply_pending_changes() argument
2185 prev = xchg(&fs_info->pending_changes, 0); in btrfs_apply_pending_changes()
2191 btrfs_set_opt(fs_info->mount_opt, INODE_MAP_CACHE); in btrfs_apply_pending_changes()
2196 btrfs_clear_opt(fs_info->mount_opt, INODE_MAP_CACHE); in btrfs_apply_pending_changes()
2201 btrfs_debug(fs_info, "pending commit done"); in btrfs_apply_pending_changes()
2205 btrfs_warn(fs_info, in btrfs_apply_pending_changes()