Lines Matching refs:delayed_root

42 void btrfs_init_delayed_root(struct btrfs_delayed_root *delayed_root)  in btrfs_init_delayed_root()  argument
44 atomic_set(&delayed_root->items, 0); in btrfs_init_delayed_root()
45 atomic_set(&delayed_root->items_seq, 0); in btrfs_init_delayed_root()
46 delayed_root->nodes = 0; in btrfs_init_delayed_root()
47 spin_lock_init(&delayed_root->lock); in btrfs_init_delayed_root()
48 init_waitqueue_head(&delayed_root->wait); in btrfs_init_delayed_root()
49 INIT_LIST_HEAD(&delayed_root->node_list); in btrfs_init_delayed_root()
50 INIT_LIST_HEAD(&delayed_root->prepare_list); in btrfs_init_delayed_root()
217 struct btrfs_delayed_root *delayed_root) in btrfs_first_delayed_node() argument
221 spin_lock(&delayed_root->lock); in btrfs_first_delayed_node()
222 node = list_first_entry_or_null(&delayed_root->node_list, in btrfs_first_delayed_node()
226 spin_unlock(&delayed_root->lock); in btrfs_first_delayed_node()
234 struct btrfs_delayed_root *delayed_root; in btrfs_next_delayed_node() local
238 delayed_root = node->root->fs_info->delayed_root; in btrfs_next_delayed_node()
239 spin_lock(&delayed_root->lock); in btrfs_next_delayed_node()
242 if (list_empty(&delayed_root->node_list)) in btrfs_next_delayed_node()
244 p = delayed_root->node_list.next; in btrfs_next_delayed_node()
245 } else if (list_is_last(&node->n_list, &delayed_root->node_list)) in btrfs_next_delayed_node()
253 spin_unlock(&delayed_root->lock); in btrfs_next_delayed_node()
262 struct btrfs_delayed_root *delayed_root; in __btrfs_release_delayed_node() local
267 delayed_root = delayed_node->root->fs_info->delayed_root; in __btrfs_release_delayed_node()
271 btrfs_queue_delayed_node(delayed_root, delayed_node, mod); in __btrfs_release_delayed_node()
273 btrfs_dequeue_delayed_node(delayed_root, delayed_node); in __btrfs_release_delayed_node()
295 struct btrfs_delayed_root *delayed_root) in btrfs_first_prepared_delayed_node() argument
299 spin_lock(&delayed_root->lock); in btrfs_first_prepared_delayed_node()
300 node = list_first_entry_or_null(&delayed_root->prepare_list, in btrfs_first_prepared_delayed_node()
306 spin_unlock(&delayed_root->lock); in btrfs_first_prepared_delayed_node()
399 atomic_inc(&delayed_node->root->fs_info->delayed_root->items); in __btrfs_add_delayed_item()
403 static void finish_one_item(struct btrfs_delayed_root *delayed_root) in finish_one_item() argument
405 int seq = atomic_inc_return(&delayed_root->items_seq); in finish_one_item()
408 if ((atomic_dec_return(&delayed_root->items) < in finish_one_item()
410 cond_wake_up_nomb(&delayed_root->wait); in finish_one_item()
417 struct btrfs_delayed_root *delayed_root; in __btrfs_remove_delayed_item() local
426 delayed_root = delayed_node->root->fs_info->delayed_root; in __btrfs_remove_delayed_item()
437 finish_one_item(delayed_root); in __btrfs_remove_delayed_item()
957 struct btrfs_delayed_root *delayed_root; in btrfs_release_delayed_inode() local
965 delayed_root = delayed_node->root->fs_info->delayed_root; in btrfs_release_delayed_inode()
966 finish_one_item(delayed_root); in btrfs_release_delayed_inode()
974 struct btrfs_delayed_root *delayed_root; in btrfs_release_delayed_iref() local
979 delayed_root = delayed_node->root->fs_info->delayed_root; in btrfs_release_delayed_iref()
980 finish_one_item(delayed_root); in btrfs_release_delayed_iref()
1127 struct btrfs_delayed_root *delayed_root; in __btrfs_run_delayed_items() local
1144 delayed_root = fs_info->delayed_root; in __btrfs_run_delayed_items()
1146 curr_node = btrfs_first_delayed_node(delayed_root); in __btrfs_run_delayed_items()
1296 struct btrfs_delayed_root *delayed_root; member
1304 struct btrfs_delayed_root *delayed_root; in btrfs_async_run_delayed_root() local
1313 delayed_root = async_work->delayed_root; in btrfs_async_run_delayed_root()
1320 if (atomic_read(&delayed_root->items) < in btrfs_async_run_delayed_root()
1324 delayed_node = btrfs_first_prepared_delayed_node(delayed_root); in btrfs_async_run_delayed_root()
1356 wake_up(&delayed_root->wait); in btrfs_async_run_delayed_root()
1361 static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root, in btrfs_wq_run_delayed_node() argument
1370 async_work->delayed_root = delayed_root; in btrfs_wq_run_delayed_node()
1380 struct btrfs_delayed_node *node = btrfs_first_delayed_node(fs_info->delayed_root); in btrfs_assert_delayed_root_empty()
1386 static bool could_end_wait(struct btrfs_delayed_root *delayed_root, int seq) in could_end_wait() argument
1388 int val = atomic_read(&delayed_root->items_seq); in could_end_wait()
1393 if (atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND) in could_end_wait()
1401 struct btrfs_delayed_root *delayed_root = fs_info->delayed_root; in btrfs_balance_delayed_items() local
1403 if ((atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND) || in btrfs_balance_delayed_items()
1407 if (atomic_read(&delayed_root->items) >= BTRFS_DELAYED_WRITEBACK) { in btrfs_balance_delayed_items()
1411 seq = atomic_read(&delayed_root->items_seq); in btrfs_balance_delayed_items()
1413 ret = btrfs_wq_run_delayed_node(delayed_root, fs_info, 0); in btrfs_balance_delayed_items()
1417 wait_event_interruptible(delayed_root->wait, in btrfs_balance_delayed_items()
1418 could_end_wait(delayed_root, seq)); in btrfs_balance_delayed_items()
1422 btrfs_wq_run_delayed_node(delayed_root, fs_info, BTRFS_DELAYED_BATCH); in btrfs_balance_delayed_items()
1926 atomic_inc(&root->fs_info->delayed_root->items); in btrfs_delayed_update_inode()
1970 atomic_inc(&fs_info->delayed_root->items); in btrfs_delayed_delete_inode_ref()
2068 curr_node = btrfs_first_delayed_node(fs_info->delayed_root); in btrfs_destroy_delayed_inodes()