Lines Matching refs:sd
133 struct g_raid_subdisk *sd);
151 struct g_raid_subdisk *sd) in g_raid_tr_update_state_raid1() argument
208 g_raid_tr_raid1_maybe_rebuild(vol->v_tr, sd); in g_raid_tr_update_state_raid1()
222 g_raid_tr_raid1_fail_disk(struct g_raid_softc *sc, struct g_raid_subdisk *sd, in g_raid_tr_raid1_fail_disk() argument
234 if (g_raid_nsubdisks(sd->sd_volume, G_RAID_SUBDISK_S_ACTIVE) == 1 && in g_raid_tr_raid1_fail_disk()
235 g_raid_get_subdisk(sd->sd_volume, G_RAID_SUBDISK_S_ACTIVE) == sd) in g_raid_tr_raid1_fail_disk()
237 g_raid_fail_disk(sc, sd, disk); in g_raid_tr_raid1_fail_disk()
244 struct g_raid_subdisk *sd, *good_sd; in g_raid_tr_raid1_rebuild_some() local
250 sd = trs->trso_failed_sd; in g_raid_tr_raid1_rebuild_some()
251 good_sd = g_raid_get_subdisk(sd->sd_volume, G_RAID_SUBDISK_S_ACTIVE); in g_raid_tr_raid1_rebuild_some()
258 bp->bio_offset = sd->sd_rebuild_pos; in g_raid_tr_raid1_rebuild_some()
260 sd->sd_size - sd->sd_rebuild_pos); in g_raid_tr_raid1_rebuild_some()
267 g_raid_lock_range(sd->sd_volume, /* Lock callback starts I/O */ in g_raid_tr_raid1_rebuild_some()
275 struct g_raid_subdisk *sd; in g_raid_tr_raid1_rebuild_done() local
278 sd = trs->trso_failed_sd; in g_raid_tr_raid1_rebuild_done()
279 g_raid_write_metadata(vol->v_softc, vol, sd, sd->sd_disk); in g_raid_tr_raid1_rebuild_done()
293 struct g_raid_subdisk *sd; in g_raid_tr_raid1_rebuild_finish() local
296 sd = trs->trso_failed_sd; in g_raid_tr_raid1_rebuild_finish()
299 sd->sd_volume->v_name, sd->sd_pos, in g_raid_tr_raid1_rebuild_finish()
300 sd->sd_disk ? g_raid_get_diskname(sd->sd_disk) : "[none]"); in g_raid_tr_raid1_rebuild_finish()
301 g_raid_change_subdisk_state(sd, G_RAID_SUBDISK_S_ACTIVE); in g_raid_tr_raid1_rebuild_finish()
302 sd->sd_rebuild_pos = 0; in g_raid_tr_raid1_rebuild_finish()
310 struct g_raid_subdisk *sd; in g_raid_tr_raid1_rebuild_abort() local
316 sd = trs->trso_failed_sd; in g_raid_tr_raid1_rebuild_abort()
320 sd->sd_volume->v_name, sd->sd_pos, in g_raid_tr_raid1_rebuild_abort()
321 sd->sd_disk ? g_raid_get_diskname(sd->sd_disk) : "[none]"); in g_raid_tr_raid1_rebuild_abort()
326 sd->sd_volume->v_name, sd->sd_pos, in g_raid_tr_raid1_rebuild_abort()
327 sd->sd_disk ? g_raid_get_diskname(sd->sd_disk) : "[none]"); in g_raid_tr_raid1_rebuild_abort()
332 sd->sd_size - sd->sd_rebuild_pos); in g_raid_tr_raid1_rebuild_abort()
334 sd->sd_rebuild_pos, len); in g_raid_tr_raid1_rebuild_abort()
345 struct g_raid_subdisk *sd, *fsd; in g_raid_tr_raid1_rebuild_start() local
355 sd = g_raid_get_subdisk(vol, G_RAID_SUBDISK_S_ACTIVE); in g_raid_tr_raid1_rebuild_start()
356 if (sd == NULL) { in g_raid_tr_raid1_rebuild_start()
406 struct g_raid_subdisk *sd) in g_raid_tr_raid1_maybe_rebuild() argument
439 if (na == 0 || nr == 0 || trs->trso_failed_sd == sd) in g_raid_tr_raid1_maybe_rebuild()
449 struct g_raid_subdisk *sd, u_int event) in g_raid_tr_event_raid1() argument
452 g_raid_tr_update_state_raid1(tr->tro_volume, sd); in g_raid_tr_event_raid1()
492 struct g_raid_subdisk *sd, *best; in g_raid_tr_raid1_select_read_disk() local
498 sd = &vol->v_subdisks[i]; in g_raid_tr_raid1_select_read_disk()
499 if (sd->sd_state != G_RAID_SUBDISK_S_ACTIVE && in g_raid_tr_raid1_select_read_disk()
500 ((sd->sd_state != G_RAID_SUBDISK_S_REBUILD && in g_raid_tr_raid1_select_read_disk()
501 sd->sd_state != G_RAID_SUBDISK_S_RESYNC) || in g_raid_tr_raid1_select_read_disk()
502 bp->bio_offset + bp->bio_length > sd->sd_rebuild_pos)) in g_raid_tr_raid1_select_read_disk()
506 prio = G_RAID_SUBDISK_LOAD(sd); in g_raid_tr_raid1_select_read_disk()
507 prio += min(sd->sd_recovery, 255) << 22; in g_raid_tr_raid1_select_read_disk()
508 prio += (G_RAID_SUBDISK_S_ACTIVE - sd->sd_state) << 16; in g_raid_tr_raid1_select_read_disk()
510 if (G_RAID_SUBDISK_POS(sd) == bp->bio_offset) in g_raid_tr_raid1_select_read_disk()
514 if (ABS(G_RAID_SUBDISK_POS(sd) - bp->bio_offset) < in g_raid_tr_raid1_select_read_disk()
518 best = sd; in g_raid_tr_raid1_select_read_disk()
528 struct g_raid_subdisk *sd; in g_raid_tr_iostart_raid1_read() local
531 sd = g_raid_tr_raid1_select_read_disk(tr->tro_volume, bp, 0); in g_raid_tr_iostart_raid1_read()
532 KASSERT(sd != NULL, ("No active disks in volume %s.", in g_raid_tr_iostart_raid1_read()
541 g_raid_subdisk_iostart(sd, cbp); in g_raid_tr_iostart_raid1_read()
548 struct g_raid_subdisk *sd; in g_raid_tr_iostart_raid1_write() local
561 sd = &vol->v_subdisks[i]; in g_raid_tr_iostart_raid1_write()
562 switch (sd->sd_state) { in g_raid_tr_iostart_raid1_write()
571 if (bp->bio_offset >= sd->sd_rebuild_pos) in g_raid_tr_iostart_raid1_write()
589 cbp->bio_caller1 = sd; in g_raid_tr_iostart_raid1_write()
593 sd = cbp->bio_caller1; in g_raid_tr_iostart_raid1_write()
595 g_raid_subdisk_iostart(sd, cbp); in g_raid_tr_iostart_raid1_write()
655 struct g_raid_subdisk *sd, struct bio *bp) in g_raid_tr_iodone_raid1() argument
726 g_raid_tr_raid1_fail_disk(sd->sd_softc, in g_raid_tr_iodone_raid1()
736 g_raid_unlock_range(sd->sd_volume, in g_raid_tr_iodone_raid1()
780 sd->sd_disk->d_read_errs++; in g_raid_tr_iodone_raid1()
783 bp->bio_error, sd->sd_disk->d_read_errs); in g_raid_tr_iodone_raid1()
792 if (sd->sd_disk->d_read_errs > g_raid_read_err_thresh) { in g_raid_tr_iodone_raid1()
793 g_raid_tr_raid1_fail_disk(sd->sd_softc, sd, sd->sd_disk); in g_raid_tr_iodone_raid1()
804 pbp->bio_driver1 = do_write ? sd : NULL; in g_raid_tr_iodone_raid1()
807 *mask |= 1 << sd->sd_pos; in g_raid_tr_iodone_raid1()
814 sd->sd_recovery++; in g_raid_tr_iodone_raid1()
818 g_raid_lock_range(sd->sd_volume, in g_raid_tr_iodone_raid1()
873 g_raid_tr_raid1_fail_disk(sd->sd_softc, sd, sd->sd_disk); in g_raid_tr_iodone_raid1()
881 g_raid_unlock_range(sd->sd_volume, bp->bio_offset, in g_raid_tr_iodone_raid1()
889 g_raid_tr_raid1_fail_disk(sd->sd_softc, sd, sd->sd_disk); in g_raid_tr_iodone_raid1()
906 struct g_raid_subdisk *sd; in g_raid_tr_kerneldump_raid1() local
913 sd = &vol->v_subdisks[i]; in g_raid_tr_kerneldump_raid1()
914 switch (sd->sd_state) { in g_raid_tr_kerneldump_raid1()
923 if (offset >= sd->sd_rebuild_pos) in g_raid_tr_kerneldump_raid1()
938 error = g_raid_subdisk_kerneldump(sd, in g_raid_tr_kerneldump_raid1()
950 struct g_raid_subdisk *sd; in g_raid_tr_locked_raid1() local
953 sd = (struct g_raid_subdisk *)bp->bio_caller1; in g_raid_tr_locked_raid1()
954 g_raid_subdisk_iostart(sd, bp); in g_raid_tr_locked_raid1()