Lines Matching refs:dev
250 struct btrfs_device *dev, u64 logical, in reada_find_zone() argument
262 ret = radix_tree_gang_lookup(&dev->reada_zones, (void **)&zone, in reada_find_zone()
295 zone->device = dev; /* our device always sits at index 0 */ in reada_find_zone()
298 zone->devs[i] = bbio->stripes[i].dev; in reada_find_zone()
303 ret = radix_tree_insert(&dev->reada_zones, in reada_find_zone()
309 ret = radix_tree_gang_lookup(&dev->reada_zones, (void **)&zone, in reada_find_zone()
328 struct btrfs_device *dev; in reada_find_extent() local
376 dev = bbio->stripes[nzones].dev; in reada_find_extent()
377 zone = reada_find_zone(fs_info, dev, logical, bbio); in reada_find_extent()
418 dev = bbio->stripes[i].dev; in reada_find_extent()
419 if (dev == prev_dev) { in reada_find_extent()
429 if (!dev->bdev) { in reada_find_extent()
434 dev == fs_info->dev_replace.tgtdev) { in reada_find_extent()
441 prev_dev = dev; in reada_find_extent()
442 ret = radix_tree_insert(&dev->reada_extents, index, re); in reada_find_extent()
445 dev = bbio->stripes[i].dev; in reada_find_extent()
446 BUG_ON(dev == NULL); in reada_find_extent()
448 radix_tree_delete(&dev->reada_extents, index); in reada_find_extent()
601 static int reada_pick_zone(struct btrfs_device *dev) in reada_pick_zone() argument
610 if (dev->reada_curr_zone) { in reada_pick_zone()
611 reada_peer_zones_set_lock(dev->reada_curr_zone, 0); in reada_pick_zone()
612 kref_put(&dev->reada_curr_zone->refcnt, reada_zone_release); in reada_pick_zone()
613 dev->reada_curr_zone = NULL; in reada_pick_zone()
619 ret = radix_tree_gang_lookup(&dev->reada_zones, in reada_pick_zone()
637 dev->reada_curr_zone = top_zone; in reada_pick_zone()
639 dev->reada_curr_zone = top_locked_zone; in reada_pick_zone()
643 dev->reada_next = dev->reada_curr_zone->start; in reada_pick_zone()
644 kref_get(&dev->reada_curr_zone->refcnt); in reada_pick_zone()
645 reada_peer_zones_set_lock(dev->reada_curr_zone, 1); in reada_pick_zone()
651 struct btrfs_device *dev) in reada_start_machine_dev() argument
663 if (dev->reada_curr_zone == NULL) { in reada_start_machine_dev()
664 ret = reada_pick_zone(dev); in reada_start_machine_dev()
675 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
676 dev->reada_next >> PAGE_CACHE_SHIFT, 1); in reada_start_machine_dev()
677 if (ret == 0 || re->logical >= dev->reada_curr_zone->end) { in reada_start_machine_dev()
678 ret = reada_pick_zone(dev); in reada_start_machine_dev()
684 ret = radix_tree_gang_lookup(&dev->reada_extents, (void **)&re, in reada_start_machine_dev()
685 dev->reada_next >> PAGE_CACHE_SHIFT, 1); in reada_start_machine_dev()
691 dev->reada_next = re->logical + re->blocksize; in reada_start_machine_dev()
700 if (re->zones[i]->device == dev) { in reada_start_machine_dev()
710 re->scheduled_for = dev; in reada_start_machine_dev()
720 atomic_inc(&dev->reada_in_flight); in reada_start_machine_dev()