Lines Matching refs:re

95 			     struct reada_extent *re, struct extent_buffer *eb,  in __readahead_hook()  argument
104 spin_lock(&re->lock); in __readahead_hook()
109 list_replace_init(&re->extctl, &list); in __readahead_hook()
110 re->scheduled = 0; in __readahead_hook()
111 spin_unlock(&re->lock); in __readahead_hook()
143 next_key = re->top; in __readahead_hook()
192 reada_extent_put(fs_info, re); /* one ref for each entry */ in __readahead_hook()
202 struct reada_extent *re; in btree_readahead_hook() local
206 re = radix_tree_lookup(&fs_info->reada_tree, in btree_readahead_hook()
208 if (re) in btree_readahead_hook()
209 re->refcnt++; in btree_readahead_hook()
211 if (!re) { in btree_readahead_hook()
216 __readahead_hook(fs_info, re, eb, err); in btree_readahead_hook()
217 reada_extent_put(fs_info, re); /* our ref */ in btree_readahead_hook()
304 struct reada_extent *re = NULL; in reada_find_extent() local
317 re = radix_tree_lookup(&fs_info->reada_tree, index); in reada_find_extent()
318 if (re) in reada_find_extent()
319 re->refcnt++; in reada_find_extent()
322 if (re) in reada_find_extent()
323 return re; in reada_find_extent()
325 re = kzalloc(sizeof(*re), GFP_KERNEL); in reada_find_extent()
326 if (!re) in reada_find_extent()
329 re->logical = logical; in reada_find_extent()
330 re->top = *top; in reada_find_extent()
331 INIT_LIST_HEAD(&re->extctl); in reada_find_extent()
332 spin_lock_init(&re->lock); in reada_find_extent()
333 re->refcnt = 1; in reada_find_extent()
365 re->zones[re->nzones++] = zone; in reada_find_extent()
375 if (re->nzones == 0) { in reada_find_extent()
389 ret = radix_tree_insert(&fs_info->reada_tree, index, re); in reada_find_extent()
408 for (nzones = 0; nzones < re->nzones; ++nzones) { in reada_find_extent()
409 dev = re->zones[nzones]->device; in reada_find_extent()
433 ret = radix_tree_insert(&dev->reada_extents, index, re); in reada_find_extent()
436 dev = re->zones[nzones]->device; in reada_find_extent()
455 return re; in reada_find_extent()
458 for (nzones = 0; nzones < re->nzones; ++nzones) { in reada_find_extent()
461 zone = re->zones[nzones]; in reada_find_extent()
479 kfree(re); in reada_find_extent()
484 struct reada_extent *re) in reada_extent_put() argument
487 unsigned long index = re->logical >> PAGE_SHIFT; in reada_extent_put()
490 if (--re->refcnt) { in reada_extent_put()
496 for (i = 0; i < re->nzones; ++i) { in reada_extent_put()
497 struct reada_zone *zone = re->zones[i]; in reada_extent_put()
504 for (i = 0; i < re->nzones; ++i) { in reada_extent_put()
505 struct reada_zone *zone = re->zones[i]; in reada_extent_put()
522 kfree(re); in reada_extent_put()
547 struct reada_extent *re; in reada_add_block() local
551 re = reada_find_extent(fs_info, logical, top); in reada_add_block()
552 if (!re) in reada_add_block()
557 reada_extent_put(fs_info, re); in reada_add_block()
565 spin_lock(&re->lock); in reada_add_block()
566 list_add_tail(&rec->list, &re->extctl); in reada_add_block()
567 spin_unlock(&re->lock); in reada_add_block()
674 struct reada_extent *re = NULL; in reada_start_machine_dev() local
694 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
696 if (ret == 0 || re->logical > dev->reada_curr_zone->end) { in reada_start_machine_dev()
702 re = NULL; in reada_start_machine_dev()
703 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
710 dev->reada_next = re->logical + fs_info->nodesize; in reada_start_machine_dev()
711 re->refcnt++; in reada_start_machine_dev()
715 spin_lock(&re->lock); in reada_start_machine_dev()
716 if (re->scheduled || list_empty(&re->extctl)) { in reada_start_machine_dev()
717 spin_unlock(&re->lock); in reada_start_machine_dev()
718 reada_extent_put(fs_info, re); in reada_start_machine_dev()
721 re->scheduled = 1; in reada_start_machine_dev()
722 spin_unlock(&re->lock); in reada_start_machine_dev()
727 for (i = 0; i < re->nzones; ++i) { in reada_start_machine_dev()
728 if (re->zones[i]->device == dev) { in reada_start_machine_dev()
733 logical = re->logical; in reada_start_machine_dev()
738 __readahead_hook(fs_info, re, NULL, ret); in reada_start_machine_dev()
740 __readahead_hook(fs_info, re, eb, ret); in reada_start_machine_dev()
746 reada_extent_put(fs_info, re); in reada_start_machine_dev()
870 struct reada_extent *re = NULL; in dump_devs() local
873 (void **)&re, index, 1); in dump_devs()
877 re->logical, fs_info->nodesize, in dump_devs()
878 list_empty(&re->extctl), re->scheduled); in dump_devs()
880 for (i = 0; i < re->nzones; ++i) { in dump_devs()
882 re->zones[i]->start, in dump_devs()
883 re->zones[i]->end); in dump_devs()
884 for (j = 0; j < re->zones[i]->ndevs; ++j) { in dump_devs()
886 re->zones[i]->devs[j]->devid); in dump_devs()
890 index = (re->logical >> PAGE_SHIFT) + 1; in dump_devs()
899 struct reada_extent *re = NULL; in dump_devs() local
901 ret = radix_tree_gang_lookup(&fs_info->reada_tree, (void **)&re, in dump_devs()
905 if (!re->scheduled) { in dump_devs()
906 index = (re->logical >> PAGE_SHIFT) + 1; in dump_devs()
910 re->logical, fs_info->nodesize, in dump_devs()
911 list_empty(&re->extctl), re->scheduled); in dump_devs()
912 for (i = 0; i < re->nzones; ++i) { in dump_devs()
914 re->zones[i]->start, in dump_devs()
915 re->zones[i]->end); in dump_devs()
916 for (j = 0; j < re->zones[i]->ndevs; ++j) { in dump_devs()
918 re->zones[i]->devs[j]->devid); in dump_devs()
922 index = (re->logical >> PAGE_SHIFT) + 1; in dump_devs()