Lines Matching refs:re

116 	struct reada_extent *re;  in __readahead_hook()  local
127 re = radix_tree_lookup(&fs_info->reada_tree, index); in __readahead_hook()
128 if (re) in __readahead_hook()
129 re->refcnt++; in __readahead_hook()
132 if (!re) in __readahead_hook()
135 spin_lock(&re->lock); in __readahead_hook()
140 list_replace_init(&re->extctl, &list); in __readahead_hook()
141 for_dev = re->scheduled_for; in __readahead_hook()
142 re->scheduled_for = NULL; in __readahead_hook()
143 spin_unlock(&re->lock); in __readahead_hook()
175 next_key = re->top; 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()
323 struct reada_extent *re = NULL; in reada_find_extent() local
337 re = radix_tree_lookup(&fs_info->reada_tree, index); in reada_find_extent()
338 if (re) in reada_find_extent()
339 re->refcnt++; in reada_find_extent()
342 if (re) in reada_find_extent()
343 return re; in reada_find_extent()
345 re = kzalloc(sizeof(*re), GFP_NOFS); in reada_find_extent()
346 if (!re) in reada_find_extent()
350 re->logical = logical; in reada_find_extent()
351 re->top = *top; in reada_find_extent()
352 INIT_LIST_HEAD(&re->extctl); in reada_find_extent()
353 spin_lock_init(&re->lock); in reada_find_extent()
354 re->refcnt = 1; in reada_find_extent()
380 re->zones[nzones] = zone; in reada_find_extent()
390 re->nzones = nzones; in reada_find_extent()
399 ret = radix_tree_insert(&fs_info->reada_tree, index, re); in reada_find_extent()
446 ret = radix_tree_insert(&dev->reada_extents, index, re); in reada_find_extent()
465 return re; in reada_find_extent()
472 zone = re->zones[nzones]; in reada_find_extent()
490 kfree(re); in reada_find_extent()
495 struct reada_extent *re) in reada_extent_put() argument
498 unsigned long index = re->logical >> PAGE_CACHE_SHIFT; in reada_extent_put()
501 if (--re->refcnt) { in reada_extent_put()
507 for (i = 0; i < re->nzones; ++i) { in reada_extent_put()
508 struct reada_zone *zone = re->zones[i]; in reada_extent_put()
515 for (i = 0; i < re->nzones; ++i) { in reada_extent_put()
516 struct reada_zone *zone = re->zones[i]; in reada_extent_put()
532 if (re->scheduled_for) in reada_extent_put()
533 atomic_dec(&re->scheduled_for->reada_in_flight); in reada_extent_put()
535 kfree(re); in reada_extent_put()
560 struct reada_extent *re; in reada_add_block() local
563 re = reada_find_extent(root, logical, top, level); /* takes one ref */ in reada_add_block()
564 if (!re) in reada_add_block()
569 reada_extent_put(root->fs_info, re); in reada_add_block()
577 spin_lock(&re->lock); in reada_add_block()
578 list_add_tail(&rec->list, &re->extctl); in reada_add_block()
579 spin_unlock(&re->lock); in reada_add_block()
657 struct reada_extent *re = NULL; in reada_start_machine_dev() local
678 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
680 if (ret == 0 || re->logical >= dev->reada_curr_zone->end) { in reada_start_machine_dev()
686 re = NULL; in reada_start_machine_dev()
687 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
694 dev->reada_next = re->logical + fs_info->tree_root->nodesize; in reada_start_machine_dev()
695 re->refcnt++; in reada_start_machine_dev()
702 for (i = 0; i < re->nzones; ++i) { in reada_start_machine_dev()
703 if (re->zones[i]->device == dev) { in reada_start_machine_dev()
708 logical = re->logical; in reada_start_machine_dev()
710 spin_lock(&re->lock); in reada_start_machine_dev()
711 if (re->scheduled_for == NULL) { in reada_start_machine_dev()
712 re->scheduled_for = dev; in reada_start_machine_dev()
715 spin_unlock(&re->lock); in reada_start_machine_dev()
717 reada_extent_put(fs_info, re); in reada_start_machine_dev()
842 struct reada_extent *re = NULL; in dump_devs() local
845 (void **)&re, index, 1); in dump_devs()
850 re->logical, fs_info->tree_root->nodesize, in dump_devs()
851 list_empty(&re->extctl), re->scheduled_for ? in dump_devs()
852 re->scheduled_for->devid : -1); in dump_devs()
854 for (i = 0; i < re->nzones; ++i) { in dump_devs()
856 re->zones[i]->start, in dump_devs()
857 re->zones[i]->end); in dump_devs()
858 for (j = 0; j < re->zones[i]->ndevs; ++j) { in dump_devs()
860 re->zones[i]->devs[j]->devid); in dump_devs()
864 index = (re->logical >> PAGE_CACHE_SHIFT) + 1; in dump_devs()
873 struct reada_extent *re = NULL; in dump_devs() local
875 ret = radix_tree_gang_lookup(&fs_info->reada_tree, (void **)&re, in dump_devs()
879 if (!re->scheduled_for) { in dump_devs()
880 index = (re->logical >> PAGE_CACHE_SHIFT) + 1; in dump_devs()
885 re->logical, fs_info->tree_root->nodesize, in dump_devs()
886 list_empty(&re->extctl), in dump_devs()
887 re->scheduled_for ? re->scheduled_for->devid : -1); in dump_devs()
888 for (i = 0; i < re->nzones; ++i) { in dump_devs()
890 re->zones[i]->start, in dump_devs()
891 re->zones[i]->end); in dump_devs()
892 for (i = 0; i < re->nzones; ++i) { in dump_devs()
894 re->zones[i]->start, in dump_devs()
895 re->zones[i]->end); in dump_devs()
896 for (j = 0; j < re->zones[i]->ndevs; ++j) { in dump_devs()
898 re->zones[i]->devs[j]->devid); in dump_devs()
903 index = (re->logical >> PAGE_CACHE_SHIFT) + 1; in dump_devs()