Lines Matching refs:sd
49 int sr_raid1_init(struct sr_discipline *sd);
57 sr_raid1_discipline_init(struct sr_discipline *sd) in sr_raid1_discipline_init() argument
60 sd->sd_type = SR_MD_RAID1; in sr_raid1_discipline_init()
61 strlcpy(sd->sd_name, "RAID 1", sizeof(sd->sd_name)); in sr_raid1_discipline_init()
62 sd->sd_capabilities = SR_CAP_SYSTEM_DISK | SR_CAP_AUTO_ASSEMBLE | in sr_raid1_discipline_init()
64 sd->sd_max_wu = SR_RAID1_NOWU; in sr_raid1_discipline_init()
67 sd->sd_assemble = sr_raid1_assemble; in sr_raid1_discipline_init()
68 sd->sd_create = sr_raid1_create; in sr_raid1_discipline_init()
69 sd->sd_scsi_rw = sr_raid1_rw; in sr_raid1_discipline_init()
70 sd->sd_scsi_wu_done = sr_raid1_wu_done; in sr_raid1_discipline_init()
71 sd->sd_set_chunk_state = sr_raid1_set_chunk_state; in sr_raid1_discipline_init()
72 sd->sd_set_vol_state = sr_raid1_set_vol_state; in sr_raid1_discipline_init()
76 sr_raid1_create(struct sr_discipline *sd, struct bioc_createraid *bc, in sr_raid1_create() argument
80 sr_error(sd->sd_sc, "%s requires two or more chunks", in sr_raid1_create()
81 sd->sd_name); in sr_raid1_create()
85 sd->sd_meta->ssdi.ssd_size = coerced_size; in sr_raid1_create()
87 return sr_raid1_init(sd); in sr_raid1_create()
91 sr_raid1_assemble(struct sr_discipline *sd, struct bioc_createraid *bc, in sr_raid1_assemble() argument
94 return sr_raid1_init(sd); in sr_raid1_assemble()
98 sr_raid1_init(struct sr_discipline *sd) in sr_raid1_init() argument
100 sd->sd_max_ccb_per_wu = sd->sd_meta->ssdi.ssd_chunk_no; in sr_raid1_init()
106 sr_raid1_set_chunk_state(struct sr_discipline *sd, int c, int new_state) in sr_raid1_set_chunk_state() argument
111 DEVNAME(sd->sd_sc), sd->sd_meta->ssd_devname, in sr_raid1_set_chunk_state()
112 sd->sd_vol.sv_chunks[c]->src_meta.scmi.scm_devname, c, new_state); in sr_raid1_set_chunk_state()
116 old_state = sd->sd_vol.sv_chunks[c]->src_meta.scm_status; in sr_raid1_set_chunk_state()
156 sd->sd_reb_abort = 1; in sr_raid1_set_chunk_state()
177 DEVNAME(sd->sd_sc), in sr_raid1_set_chunk_state()
178 sd->sd_meta->ssd_devname, in sr_raid1_set_chunk_state()
179 sd->sd_vol.sv_chunks[c]->src_meta.scmi.scm_devname, in sr_raid1_set_chunk_state()
184 sd->sd_vol.sv_chunks[c]->src_meta.scm_status = new_state; in sr_raid1_set_chunk_state()
185 sd->sd_set_vol_state(sd); in sr_raid1_set_chunk_state()
187 sd->sd_must_flush = 1; in sr_raid1_set_chunk_state()
188 task_add(systq, &sd->sd_meta_save_task); in sr_raid1_set_chunk_state()
194 sr_raid1_set_vol_state(struct sr_discipline *sd) in sr_raid1_set_vol_state() argument
198 int old_state = sd->sd_vol_status; in sr_raid1_set_vol_state()
201 DEVNAME(sd->sd_sc), sd->sd_meta->ssd_devname); in sr_raid1_set_vol_state()
203 nd = sd->sd_meta->ssdi.ssd_chunk_no; in sr_raid1_set_vol_state()
208 DEVNAME(sd->sd_sc), i, in sr_raid1_set_vol_state()
209 sd->sd_vol.sv_chunks[i]->src_meta.scm_status); in sr_raid1_set_vol_state()
216 s = sd->sd_vol.sv_chunks[i]->src_meta.scm_status; in sr_raid1_set_vol_state()
219 DEVNAME(sd->sd_sc), in sr_raid1_set_vol_state()
220 sd->sd_meta->ssd_devname, in sr_raid1_set_vol_state()
221 sd->sd_vol.sv_chunks[i]->src_meta.scmi.scm_devname); in sr_raid1_set_vol_state()
237 "was %d\n", DEVNAME(sd->sd_sc), old_state); in sr_raid1_set_vol_state()
242 DEVNAME(sd->sd_sc), sd->sd_meta->ssd_devname, in sr_raid1_set_vol_state()
311 DEVNAME(sd->sd_sc), in sr_raid1_set_vol_state()
312 sd->sd_meta->ssd_devname, in sr_raid1_set_vol_state()
317 sd->sd_vol_status = new_state; in sr_raid1_set_vol_state()
321 task_add(systq, &sd->sd_hotspare_rebuild_task); in sr_raid1_set_vol_state()
327 struct sr_discipline *sd = wu->swu_dis; in sr_raid1_rw() local
341 ios = sd->sd_meta->ssdi.ssd_chunk_no; in sr_raid1_rw()
348 chunk = sd->mds.mdd_raid1.sr1_counter++ % in sr_raid1_rw()
349 sd->sd_meta->ssdi.ssd_chunk_no; in sr_raid1_rw()
350 scp = sd->sd_vol.sv_chunks[chunk]; in sr_raid1_rw()
359 if (rt++ < sd->sd_meta->ssdi.ssd_chunk_no) in sr_raid1_rw()
366 DEVNAME(sd->sd_sc)); in sr_raid1_rw()
372 scp = sd->sd_vol.sv_chunks[chunk]; in sr_raid1_rw()
388 ccb = sr_ccb_rw(sd, chunk, blkno, xs->datalen, xs->data, in sr_raid1_rw()
393 DEVNAME(sd->sd_sc), in sr_raid1_rw()
394 sd->sd_meta->ssd_devname); in sr_raid1_rw()
412 struct sr_discipline *sd = wu->swu_dis; in sr_raid1_wu_done() local
424 sd->sd_meta->ssd_devname, (long long)wu->swu_blk_start); in sr_raid1_wu_done()
427 DEVNAME(sd->sd_sc)); in sr_raid1_wu_done()
430 if (sd->sd_scsi_rw(wu) == 0) in sr_raid1_wu_done()
434 sd->sd_meta->ssd_devname, (long long)wu->swu_blk_start); in sr_raid1_wu_done()