Lines Matching full: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()
436 ret = radix_tree_insert(&dev->reada_extents, index, re); in reada_find_extent()
439 dev = re->zones[nzones]->device; in reada_find_extent()
460 return re; in reada_find_extent()
463 for (nzones = 0; nzones < re->nzones; ++nzones) { in reada_find_extent()
466 zone = re->zones[nzones]; in reada_find_extent()
484 kfree(re); in reada_find_extent()
489 struct reada_extent *re) in reada_extent_put() argument
492 unsigned long index = re->logical >> PAGE_SHIFT; in reada_extent_put()
495 if (--re->refcnt) { in reada_extent_put()
501 for (i = 0; i < re->nzones; ++i) { in reada_extent_put()
502 struct reada_zone *zone = re->zones[i]; in reada_extent_put()
509 for (i = 0; i < re->nzones; ++i) { in reada_extent_put()
510 struct reada_zone *zone = re->zones[i]; in reada_extent_put()
527 kfree(re); in reada_extent_put()
552 struct reada_extent *re; in reada_add_block() local
556 re = reada_find_extent(fs_info, logical, top); in reada_add_block()
557 if (!re) in reada_add_block()
562 reada_extent_put(fs_info, re); in reada_add_block()
570 spin_lock(&re->lock); in reada_add_block()
571 list_add_tail(&rec->list, &re->extctl); in reada_add_block()
572 spin_unlock(&re->lock); in reada_add_block()
679 struct reada_extent *re = NULL; in reada_start_machine_dev() local
699 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
701 if (ret == 0 || re->logical > dev->reada_curr_zone->end) { in reada_start_machine_dev()
707 re = NULL; in reada_start_machine_dev()
708 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
715 dev->reada_next = re->logical + fs_info->nodesize; in reada_start_machine_dev()
716 re->refcnt++; in reada_start_machine_dev()
720 spin_lock(&re->lock); in reada_start_machine_dev()
721 if (re->scheduled || list_empty(&re->extctl)) { in reada_start_machine_dev()
722 spin_unlock(&re->lock); in reada_start_machine_dev()
723 reada_extent_put(fs_info, re); in reada_start_machine_dev()
726 re->scheduled = 1; in reada_start_machine_dev()
727 spin_unlock(&re->lock); in reada_start_machine_dev()
732 for (i = 0; i < re->nzones; ++i) { in reada_start_machine_dev()
733 if (re->zones[i]->device == dev) { in reada_start_machine_dev()
738 logical = re->logical; in reada_start_machine_dev()
743 __readahead_hook(fs_info, re, NULL, ret); in reada_start_machine_dev()
745 __readahead_hook(fs_info, re, eb, ret); in reada_start_machine_dev()
751 reada_extent_put(fs_info, re); in reada_start_machine_dev()
880 struct reada_extent *re = NULL; in dump_devs() local
883 (void **)&re, index, 1); in dump_devs()
886 pr_debug(" re: logical %llu size %u empty %d scheduled %d", in dump_devs()
887 re->logical, fs_info->nodesize, in dump_devs()
888 list_empty(&re->extctl), re->scheduled); in dump_devs()
890 for (i = 0; i < re->nzones; ++i) { in dump_devs()
892 re->zones[i]->start, in dump_devs()
893 re->zones[i]->end); in dump_devs()
894 for (j = 0; j < re->zones[i]->ndevs; ++j) { in dump_devs()
896 re->zones[i]->devs[j]->devid); in dump_devs()
900 index = (re->logical >> PAGE_SHIFT) + 1; in dump_devs()
909 struct reada_extent *re = NULL; in dump_devs() local
911 ret = radix_tree_gang_lookup(&fs_info->reada_tree, (void **)&re, in dump_devs()
915 if (!re->scheduled) { in dump_devs()
916 index = (re->logical >> PAGE_SHIFT) + 1; in dump_devs()
919 pr_debug("re: logical %llu size %u list empty %d scheduled %d", in dump_devs()
920 re->logical, fs_info->nodesize, in dump_devs()
921 list_empty(&re->extctl), re->scheduled); in dump_devs()
922 for (i = 0; i < re->nzones; ++i) { in dump_devs()
924 re->zones[i]->start, in dump_devs()
925 re->zones[i]->end); in dump_devs()
926 for (j = 0; j < re->zones[i]->ndevs; ++j) { in dump_devs()
928 re->zones[i]->devs[j]->devid); in dump_devs()
932 index = (re->logical >> PAGE_SHIFT) + 1; in dump_devs()