Commit ccdf9b30 authored by Jeff Mahoney's avatar Jeff Mahoney Committed by David Sterba

btrfs: root->fs_info cleanup, access fs_info->delayed_root directly

This results in btrfs_assert_delayed_root_empty and
btrfs_destroy_delayed_inode taking an fs_info instead of a root.
Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 0b246afa
...@@ -72,12 +72,6 @@ static inline int btrfs_is_continuous_delayed_item( ...@@ -72,12 +72,6 @@ static inline int btrfs_is_continuous_delayed_item(
return 0; return 0;
} }
static inline struct btrfs_delayed_root *btrfs_get_delayed_root(
struct btrfs_root *root)
{
return root->fs_info->delayed_root;
}
static struct btrfs_delayed_node *btrfs_get_delayed_node(struct inode *inode) static struct btrfs_delayed_node *btrfs_get_delayed_node(struct inode *inode)
{ {
struct btrfs_inode *btrfs_inode = BTRFS_I(inode); struct btrfs_inode *btrfs_inode = BTRFS_I(inode);
...@@ -1163,7 +1157,7 @@ static int __btrfs_run_delayed_items(struct btrfs_trans_handle *trans, ...@@ -1163,7 +1157,7 @@ static int __btrfs_run_delayed_items(struct btrfs_trans_handle *trans,
block_rsv = trans->block_rsv; block_rsv = trans->block_rsv;
trans->block_rsv = &fs_info->delayed_block_rsv; trans->block_rsv = &fs_info->delayed_block_rsv;
delayed_root = btrfs_get_delayed_root(root); delayed_root = fs_info->delayed_root;
curr_node = btrfs_first_delayed_node(delayed_root); curr_node = btrfs_first_delayed_node(delayed_root);
while (curr_node && (!count || (count && nr--))) { while (curr_node && (!count || (count && nr--))) {
...@@ -1390,11 +1384,9 @@ static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root, ...@@ -1390,11 +1384,9 @@ static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root,
return 0; return 0;
} }
void btrfs_assert_delayed_root_empty(struct btrfs_root *root) void btrfs_assert_delayed_root_empty(struct btrfs_fs_info *fs_info)
{ {
struct btrfs_delayed_root *delayed_root; WARN_ON(btrfs_first_delayed_node(fs_info->delayed_root));
delayed_root = btrfs_get_delayed_root(root);
WARN_ON(btrfs_first_delayed_node(delayed_root));
} }
static int could_end_wait(struct btrfs_delayed_root *delayed_root, int seq) static int could_end_wait(struct btrfs_delayed_root *delayed_root, int seq)
...@@ -1415,7 +1407,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root) ...@@ -1415,7 +1407,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
struct btrfs_delayed_root *delayed_root; struct btrfs_delayed_root *delayed_root;
struct btrfs_fs_info *fs_info = root->fs_info; struct btrfs_fs_info *fs_info = root->fs_info;
delayed_root = btrfs_get_delayed_root(root); delayed_root = fs_info->delayed_root;
if (atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND) if (atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND)
return; return;
...@@ -1980,14 +1972,11 @@ void btrfs_kill_all_delayed_nodes(struct btrfs_root *root) ...@@ -1980,14 +1972,11 @@ void btrfs_kill_all_delayed_nodes(struct btrfs_root *root)
} }
} }
void btrfs_destroy_delayed_inodes(struct btrfs_root *root) void btrfs_destroy_delayed_inodes(struct btrfs_fs_info *fs_info)
{ {
struct btrfs_delayed_root *delayed_root;
struct btrfs_delayed_node *curr_node, *prev_node; struct btrfs_delayed_node *curr_node, *prev_node;
delayed_root = btrfs_get_delayed_root(root); curr_node = btrfs_first_delayed_node(fs_info->delayed_root);
curr_node = btrfs_first_delayed_node(delayed_root);
while (curr_node) { while (curr_node) {
__btrfs_kill_delayed_node(curr_node); __btrfs_kill_delayed_node(curr_node);
......
...@@ -134,7 +134,7 @@ int btrfs_delayed_delete_inode_ref(struct inode *inode); ...@@ -134,7 +134,7 @@ int btrfs_delayed_delete_inode_ref(struct inode *inode);
void btrfs_kill_all_delayed_nodes(struct btrfs_root *root); void btrfs_kill_all_delayed_nodes(struct btrfs_root *root);
/* Used for clean the transaction */ /* Used for clean the transaction */
void btrfs_destroy_delayed_inodes(struct btrfs_root *root); void btrfs_destroy_delayed_inodes(struct btrfs_fs_info *fs_info);
/* Used for readdir() */ /* Used for readdir() */
bool btrfs_readdir_get_delayed_items(struct inode *inode, bool btrfs_readdir_get_delayed_items(struct inode *inode,
...@@ -153,6 +153,6 @@ int __init btrfs_delayed_inode_init(void); ...@@ -153,6 +153,6 @@ int __init btrfs_delayed_inode_init(void);
void btrfs_delayed_inode_exit(void); void btrfs_delayed_inode_exit(void);
/* for debugging */ /* for debugging */
void btrfs_assert_delayed_root_empty(struct btrfs_root *root); void btrfs_assert_delayed_root_empty(struct btrfs_fs_info *fs_info);
#endif #endif
...@@ -4587,8 +4587,8 @@ void btrfs_cleanup_one_transaction(struct btrfs_transaction *cur_trans, ...@@ -4587,8 +4587,8 @@ void btrfs_cleanup_one_transaction(struct btrfs_transaction *cur_trans,
cur_trans->state = TRANS_STATE_UNBLOCKED; cur_trans->state = TRANS_STATE_UNBLOCKED;
wake_up(&fs_info->transaction_wait); wake_up(&fs_info->transaction_wait);
btrfs_destroy_delayed_inodes(root); btrfs_destroy_delayed_inodes(fs_info);
btrfs_assert_delayed_root_empty(root); btrfs_assert_delayed_root_empty(fs_info);
btrfs_destroy_marked_extents(root, &cur_trans->dirty_pages, btrfs_destroy_marked_extents(root, &cur_trans->dirty_pages,
EXTENT_DIRTY); EXTENT_DIRTY);
...@@ -4649,8 +4649,8 @@ static int btrfs_cleanup_transaction(struct btrfs_root *root) ...@@ -4649,8 +4649,8 @@ static int btrfs_cleanup_transaction(struct btrfs_root *root)
} }
spin_unlock(&fs_info->trans_lock); spin_unlock(&fs_info->trans_lock);
btrfs_destroy_all_ordered_extents(fs_info); btrfs_destroy_all_ordered_extents(fs_info);
btrfs_destroy_delayed_inodes(root); btrfs_destroy_delayed_inodes(fs_info);
btrfs_assert_delayed_root_empty(root); btrfs_assert_delayed_root_empty(fs_info);
btrfs_destroy_pinned_extent(root, fs_info->pinned_extents); btrfs_destroy_pinned_extent(root, fs_info->pinned_extents);
btrfs_destroy_all_delalloc_inodes(fs_info); btrfs_destroy_all_delalloc_inodes(fs_info);
mutex_unlock(&fs_info->transaction_kthread_mutex); mutex_unlock(&fs_info->transaction_kthread_mutex);
......
...@@ -2133,7 +2133,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, ...@@ -2133,7 +2133,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans,
* make sure none of the code above managed to slip in a * make sure none of the code above managed to slip in a
* delayed item * delayed item
*/ */
btrfs_assert_delayed_root_empty(root); btrfs_assert_delayed_root_empty(fs_info);
WARN_ON(cur_trans != trans->transaction); WARN_ON(cur_trans != trans->transaction);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment