Lines Matching refs:fs_info
94 struct btrfs_fs_info *fs_info; member
100 static void reada_start_machine(struct btrfs_fs_info *fs_info);
101 static void __reada_start_machine(struct btrfs_fs_info *fs_info);
117 struct btrfs_fs_info *fs_info = root->fs_info; in __readahead_hook() local
126 spin_lock(&fs_info->reada_lock); in __readahead_hook()
127 re = radix_tree_lookup(&fs_info->reada_tree, index); in __readahead_hook()
130 spin_unlock(&fs_info->reada_lock); in __readahead_hook()
191 btrfs_debug(root->fs_info, in __readahead_hook()
223 reada_extent_put(fs_info, re); /* one ref for each entry */ in __readahead_hook()
225 reada_extent_put(fs_info, re); /* our ref */ in __readahead_hook()
243 reada_start_machine(root->fs_info); in btree_readahead_hook()
248 static struct reada_zone *reada_find_zone(struct btrfs_fs_info *fs_info, in reada_find_zone() argument
260 spin_lock(&fs_info->reada_lock); in reada_find_zone()
265 spin_unlock(&fs_info->reada_lock); in reada_find_zone()
270 spin_lock(&fs_info->reada_lock); in reada_find_zone()
272 spin_unlock(&fs_info->reada_lock); in reada_find_zone()
275 cache = btrfs_lookup_block_group(fs_info, logical); in reada_find_zone()
301 spin_lock(&fs_info->reada_lock); in reada_find_zone()
313 spin_unlock(&fs_info->reada_lock); in reada_find_zone()
325 struct btrfs_fs_info *fs_info = root->fs_info; in reada_find_extent() local
337 spin_lock(&fs_info->reada_lock); in reada_find_extent()
338 re = radix_tree_lookup(&fs_info->reada_tree, index); in reada_find_extent()
341 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
361 ret = btrfs_map_block(fs_info, REQ_GET_READ_MIRRORS, logical, &length, in reada_find_extent()
367 btrfs_err(root->fs_info, in reada_find_extent()
378 zone = reada_find_zone(fs_info, dev, logical, bbio); in reada_find_extent()
388 spin_lock(&fs_info->reada_lock); in reada_find_extent()
390 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
399 btrfs_dev_replace_lock(&fs_info->dev_replace); in reada_find_extent()
400 spin_lock(&fs_info->reada_lock); in reada_find_extent()
401 ret = radix_tree_insert(&fs_info->reada_tree, index, re); in reada_find_extent()
403 re_exist = radix_tree_lookup(&fs_info->reada_tree, index); in reada_find_extent()
406 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
407 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
411 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
412 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
417 &fs_info->dev_replace); in reada_find_extent()
440 dev == fs_info->dev_replace.tgtdev) { in reada_find_extent()
456 BUG_ON(fs_info == NULL); in reada_find_extent()
457 radix_tree_delete(&fs_info->reada_tree, index); in reada_find_extent()
458 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
459 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
463 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
464 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
487 spin_lock(&fs_info->reada_lock); in reada_find_extent()
489 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
496 static void reada_extent_put(struct btrfs_fs_info *fs_info, in reada_extent_put() argument
502 spin_lock(&fs_info->reada_lock); in reada_extent_put()
504 spin_unlock(&fs_info->reada_lock); in reada_extent_put()
508 radix_tree_delete(&fs_info->reada_tree, index); in reada_extent_put()
515 spin_unlock(&fs_info->reada_lock); in reada_extent_put()
530 spin_lock(&fs_info->reada_lock); in reada_extent_put()
532 spin_unlock(&fs_info->reada_lock); in reada_extent_put()
571 reada_extent_put(root->fs_info, re); in reada_add_block()
656 static int reada_start_machine_dev(struct btrfs_fs_info *fs_info, in reada_start_machine_dev() argument
667 spin_lock(&fs_info->reada_lock); in reada_start_machine_dev()
671 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
685 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
693 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
696 dev->reada_next = re->logical + fs_info->tree_root->nodesize; in reada_start_machine_dev()
699 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
719 reada_extent_put(fs_info, re); in reada_start_machine_dev()
725 ret = reada_tree_block_flagged(fs_info->extent_root, logical, in reada_start_machine_dev()
728 __readahead_hook(fs_info->extent_root, NULL, logical, ret); in reada_start_machine_dev()
730 __readahead_hook(fs_info->extent_root, eb, eb->start, ret); in reada_start_machine_dev()
742 struct btrfs_fs_info *fs_info; in reada_start_machine_worker() local
746 fs_info = rmw->fs_info; in reada_start_machine_worker()
753 __reada_start_machine(fs_info); in reada_start_machine_worker()
757 static void __reada_start_machine(struct btrfs_fs_info *fs_info) in __reada_start_machine() argument
760 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in __reada_start_machine()
772 enqueued += reada_start_machine_dev(fs_info, in __reada_start_machine()
794 reada_start_machine(fs_info); in __reada_start_machine()
797 static void reada_start_machine(struct btrfs_fs_info *fs_info) in reada_start_machine() argument
808 rmw->fs_info = fs_info; in reada_start_machine()
810 btrfs_queue_work(fs_info->readahead_workers, &rmw->work); in reada_start_machine()
814 static void dump_devs(struct btrfs_fs_info *fs_info, int all) in dump_devs() argument
817 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in dump_devs()
824 spin_lock(&fs_info->reada_lock); in dump_devs()
859 re->logical, fs_info->tree_root->nodesize, in dump_devs()
884 ret = radix_tree_gang_lookup(&fs_info->reada_tree, (void **)&re, in dump_devs()
894 re->logical, fs_info->tree_root->nodesize, in dump_devs()
914 spin_unlock(&fs_info->reada_lock); in dump_devs()
960 reada_start_machine(root->fs_info); in btrfs_reada_add()
973 dump_devs(rc->root->fs_info, in btrfs_reada_wait()
977 dump_devs(rc->root->fs_info, atomic_read(&rc->elems) < 10 ? 1 : 0); in btrfs_reada_wait()