Lines Matching refs:disk

336 static inline void update_head_pos(int disk, struct r1bio *r1_bio)  in update_head_pos()  argument
340 conf->mirrors[disk].head_position = in update_head_pos()
579 static void update_read_sectors(struct r1conf *conf, int disk, in update_read_sectors() argument
582 struct raid1_info *info = &conf->mirrors[disk]; in update_read_sectors()
595 int disk; in choose_first_rdev() local
597 for (disk = 0 ; disk < conf->raid_disks * 2 ; disk++) { in choose_first_rdev()
601 if (r1_bio->bios[disk] == IO_BLOCKED) in choose_first_rdev()
604 rdev = conf->mirrors[disk].rdev; in choose_first_rdev()
611 update_read_sectors(conf, disk, this_sector, read_len); in choose_first_rdev()
613 return disk; in choose_first_rdev()
632 int disk; in choose_bb_rdev() local
634 for (disk = 0 ; disk < conf->raid_disks * 2 ; disk++) { in choose_bb_rdev()
639 if (r1_bio->bios[disk] == IO_BLOCKED) in choose_bb_rdev()
642 rdev = conf->mirrors[disk].rdev; in choose_bb_rdev()
652 best_disk = disk; in choose_bb_rdev()
671 int disk; in choose_slow_rdev() local
673 for (disk = 0 ; disk < conf->raid_disks * 2 ; disk++) { in choose_slow_rdev()
678 if (r1_bio->bios[disk] == IO_BLOCKED) in choose_slow_rdev()
681 rdev = conf->mirrors[disk].rdev; in choose_slow_rdev()
692 update_read_sectors(conf, disk, this_sector, read_len); in choose_slow_rdev()
693 return disk; in choose_slow_rdev()
701 bb_disk = disk; in choose_slow_rdev()
714 static bool is_sequential(struct r1conf *conf, int disk, struct r1bio *r1_bio) in is_sequential() argument
717 return conf->mirrors[disk].next_seq_sect == r1_bio->sector || in is_sequential()
718 conf->mirrors[disk].head_position == r1_bio->sector; in is_sequential()
725 static bool should_choose_next(struct r1conf *conf, int disk) in should_choose_next() argument
727 struct raid1_info *mirror = &conf->mirrors[disk]; in should_choose_next()
769 int disk; in choose_best_rdev() local
778 for (disk = 0 ; disk < conf->raid_disks * 2 ; disk++) { in choose_best_rdev()
783 if (r1_bio->bios[disk] == IO_BLOCKED) in choose_best_rdev()
786 rdev = conf->mirrors[disk].rdev; in choose_best_rdev()
795 dist = abs(r1_bio->sector - conf->mirrors[disk].head_position); in choose_best_rdev()
798 if (is_sequential(conf, disk, r1_bio)) { in choose_best_rdev()
799 if (!should_choose_next(conf, disk)) in choose_best_rdev()
800 return disk; in choose_best_rdev()
811 ctl.sequential_disk = disk; in choose_best_rdev()
816 ctl.min_pending_disk = disk; in choose_best_rdev()
821 ctl.closest_dist_disk = disk; in choose_best_rdev()
866 int disk; in read_balance() local
874 disk = choose_best_rdev(conf, r1_bio); in read_balance()
875 if (disk >= 0) { in read_balance()
877 update_read_sectors(conf, disk, r1_bio->sector, in read_balance()
879 return disk; in read_balance()
887 disk = choose_bb_rdev(conf, r1_bio, max_sectors); in read_balance()
888 if (disk >= 0) in read_balance()
889 return disk; in read_balance()
1873 static bool raid1_add_conf(struct r1conf *conf, struct md_rdev *rdev, int disk, in raid1_add_conf() argument
1876 struct raid1_info *info = conf->mirrors + disk; in raid1_add_conf()
1889 rdev->raid_disk = disk; in raid1_add_conf()
1897 static bool raid1_remove_conf(struct r1conf *conf, int disk) in raid1_remove_conf() argument
1899 struct raid1_info *info = conf->mirrors + disk; in raid1_remove_conf()
2785 int disk = -1; in raid1_sync_request() local
2909 if (disk < 0) in raid1_sync_request()
2910 disk = i; in raid1_sync_request()
2937 if (disk < 0) in raid1_sync_request()
2938 disk = wonly; in raid1_sync_request()
2939 r1_bio->read_disk = disk; in raid1_sync_request()
3084 struct raid1_info *disk; in setup_conf() local
3158 disk = conf->mirrors + i; in setup_conf()
3161 disk[conf->raid_disks].rdev) { in setup_conf()
3163 if (!disk->rdev) { in setup_conf()
3167 disk->rdev = in setup_conf()
3168 disk[conf->raid_disks].rdev; in setup_conf()
3169 disk[conf->raid_disks].rdev = NULL; in setup_conf()
3170 } else if (!test_bit(In_sync, &disk->rdev->flags)) in setup_conf()
3175 if (!disk->rdev || in setup_conf()
3176 !test_bit(In_sync, &disk->rdev->flags)) { in setup_conf()
3177 disk->head_position = 0; in setup_conf()
3178 if (disk->rdev && in setup_conf()
3179 (disk->rdev->saved_raid_disk < 0)) in setup_conf()