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
336 spin_lock(&fs_info->reada_lock); in reada_find_extent()
337 re = radix_tree_lookup(&fs_info->reada_tree, index); in reada_find_extent()
340 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
360 ret = btrfs_map_block(fs_info, REQ_GET_READ_MIRRORS, logical, &length, in reada_find_extent()
366 btrfs_err(root->fs_info, in reada_find_extent()
376 zone = reada_find_zone(fs_info, dev, logical, bbio); in reada_find_extent()
386 spin_lock(&fs_info->reada_lock); in reada_find_extent()
388 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
397 btrfs_dev_replace_lock(&fs_info->dev_replace); in reada_find_extent()
398 spin_lock(&fs_info->reada_lock); in reada_find_extent()
399 ret = radix_tree_insert(&fs_info->reada_tree, index, re); in reada_find_extent()
401 re_exist = radix_tree_lookup(&fs_info->reada_tree, index); in reada_find_extent()
404 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
405 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
409 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
410 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
415 &fs_info->dev_replace); in reada_find_extent()
438 dev == fs_info->dev_replace.tgtdev) { in reada_find_extent()
454 BUG_ON(fs_info == NULL); in reada_find_extent()
455 radix_tree_delete(&fs_info->reada_tree, index); in reada_find_extent()
456 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
457 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
461 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
462 btrfs_dev_replace_unlock(&fs_info->dev_replace); in reada_find_extent()
485 spin_lock(&fs_info->reada_lock); in reada_find_extent()
487 spin_unlock(&fs_info->reada_lock); in reada_find_extent()
494 static void reada_extent_put(struct btrfs_fs_info *fs_info, in reada_extent_put() argument
500 spin_lock(&fs_info->reada_lock); in reada_extent_put()
502 spin_unlock(&fs_info->reada_lock); in reada_extent_put()
506 radix_tree_delete(&fs_info->reada_tree, index); in reada_extent_put()
513 spin_unlock(&fs_info->reada_lock); in reada_extent_put()
528 spin_lock(&fs_info->reada_lock); in reada_extent_put()
530 spin_unlock(&fs_info->reada_lock); in reada_extent_put()
569 reada_extent_put(root->fs_info, re); in reada_add_block()
654 static int reada_start_machine_dev(struct btrfs_fs_info *fs_info, in reada_start_machine_dev() argument
665 spin_lock(&fs_info->reada_lock); in reada_start_machine_dev()
669 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
683 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
691 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
694 dev->reada_next = re->logical + fs_info->tree_root->nodesize; in reada_start_machine_dev()
697 spin_unlock(&fs_info->reada_lock); in reada_start_machine_dev()
717 reada_extent_put(fs_info, re); in reada_start_machine_dev()
723 ret = reada_tree_block_flagged(fs_info->extent_root, logical, in reada_start_machine_dev()
726 __readahead_hook(fs_info->extent_root, NULL, logical, ret); in reada_start_machine_dev()
728 __readahead_hook(fs_info->extent_root, eb, eb->start, ret); in reada_start_machine_dev()
740 struct btrfs_fs_info *fs_info; in reada_start_machine_worker() local
744 fs_info = rmw->fs_info; in reada_start_machine_worker()
751 __reada_start_machine(fs_info); in reada_start_machine_worker()
755 static void __reada_start_machine(struct btrfs_fs_info *fs_info) in __reada_start_machine() argument
758 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in __reada_start_machine()
768 enqueued += reada_start_machine_dev(fs_info, in __reada_start_machine()
785 reada_start_machine(fs_info); in __reada_start_machine()
788 static void reada_start_machine(struct btrfs_fs_info *fs_info) in reada_start_machine() argument
799 rmw->fs_info = fs_info; in reada_start_machine()
801 btrfs_queue_work(fs_info->readahead_workers, &rmw->work); in reada_start_machine()
805 static void dump_devs(struct btrfs_fs_info *fs_info, int all) in dump_devs() argument
808 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in dump_devs()
815 spin_lock(&fs_info->reada_lock); in dump_devs()
850 re->logical, fs_info->tree_root->nodesize, in dump_devs()
875 ret = radix_tree_gang_lookup(&fs_info->reada_tree, (void **)&re, in dump_devs()
885 re->logical, fs_info->tree_root->nodesize, in dump_devs()
905 spin_unlock(&fs_info->reada_lock); in dump_devs()
949 reada_start_machine(root->fs_info); in btrfs_reada_add()
962 dump_devs(rc->root->fs_info, in btrfs_reada_wait()
966 dump_devs(rc->root->fs_info, atomic_read(&rc->elems) < 10 ? 1 : 0); in btrfs_reada_wait()