Lines Matching refs:sd

57 void	sr_raid1c_free_resources(struct sr_discipline *sd);
58 int sr_raid1c_ioctl(struct sr_discipline *sd, struct bioc_discipline *bd);
66 extern int sr_raid1_init(struct sr_discipline *sd);
93 sr_raid1c_discipline_init(struct sr_discipline *sd) in sr_raid1c_discipline_init() argument
98 sd->sd_wu_size = sizeof(struct sr_crypto_wu); in sr_raid1c_discipline_init()
99 sd->sd_type = SR_MD_RAID1C; in sr_raid1c_discipline_init()
100 strlcpy(sd->sd_name, "RAID 1C", sizeof(sd->sd_name)); in sr_raid1c_discipline_init()
101 sd->sd_capabilities = SR_CAP_SYSTEM_DISK | SR_CAP_AUTO_ASSEMBLE | in sr_raid1c_discipline_init()
103 sd->sd_max_wu = SR_RAID1C_NOWU; in sr_raid1c_discipline_init()
106 sd->mds.mdd_raid1c.sr1c_crypto.scr_sid[i] = (u_int64_t)-1; in sr_raid1c_discipline_init()
109 sd->sd_alloc_resources = sr_raid1c_alloc_resources; in sr_raid1c_discipline_init()
110 sd->sd_assemble = sr_raid1c_assemble; in sr_raid1c_discipline_init()
111 sd->sd_create = sr_raid1c_create; in sr_raid1c_discipline_init()
112 sd->sd_free_resources = sr_raid1c_free_resources; in sr_raid1c_discipline_init()
113 sd->sd_ioctl_handler = sr_raid1c_ioctl; in sr_raid1c_discipline_init()
114 sd->sd_meta_opt_handler = sr_raid1c_meta_opt_handler; in sr_raid1c_discipline_init()
115 sd->sd_scsi_rw = sr_raid1c_rw; in sr_raid1c_discipline_init()
116 sd->sd_scsi_done = sr_raid1c_done; in sr_raid1c_discipline_init()
117 sd->sd_scsi_wu_done = sr_raid1_wu_done; in sr_raid1c_discipline_init()
118 sd->sd_set_chunk_state = sr_raid1_set_chunk_state; in sr_raid1c_discipline_init()
119 sd->sd_set_vol_state = sr_raid1_set_vol_state; in sr_raid1c_discipline_init()
123 sr_raid1c_create(struct sr_discipline *sd, struct bioc_createraid *bc, in sr_raid1c_create() argument
129 sr_error(sd->sd_sc, "%s requires two or more chunks", in sr_raid1c_create()
130 sd->sd_name); in sr_raid1c_create()
134 sd->sd_meta->ssdi.ssd_size = coerced_size; in sr_raid1c_create()
136 rv = sr_raid1_init(sd); in sr_raid1c_create()
140 return sr_crypto_meta_create(sd, &sd->mds.mdd_raid1c.sr1c_crypto, bc); in sr_raid1c_create()
144 sr_raid1c_add_offline_chunks(struct sr_discipline *sd, int no_chunk) in sr_raid1c_add_offline_chunks() argument
150 chunks = mallocarray(sd->sd_meta->ssdi.ssd_chunk_no, in sr_raid1c_add_offline_chunks()
154 chunks[c] = sd->sd_vol.sv_chunks[c]; in sr_raid1c_add_offline_chunks()
156 for (c = no_chunk; c < sd->sd_meta->ssdi.ssd_chunk_no; c++) { in sr_raid1c_add_offline_chunks()
166 free(sd->sd_vol.sv_chunks, M_DEVBUF, in sr_raid1c_add_offline_chunks()
168 sd->sd_vol.sv_chunks = chunks; in sr_raid1c_add_offline_chunks()
174 sr_raid1c_assemble(struct sr_discipline *sd, struct bioc_createraid *bc, in sr_raid1c_assemble() argument
177 struct sr_raid1c *mdd_raid1c = &sd->mds.mdd_raid1c; in sr_raid1c_assemble()
181 if (no_chunk < sd->sd_meta->ssdi.ssd_chunk_no) { in sr_raid1c_assemble()
182 rv = sr_raid1c_add_offline_chunks(sd, no_chunk); in sr_raid1c_assemble()
187 rv = sr_raid1_assemble(sd, bc, no_chunk, NULL); in sr_raid1c_assemble()
191 return sr_crypto_set_key(sd, &mdd_raid1c->sr1c_crypto, bc, in sr_raid1c_assemble()
196 sr_raid1c_ioctl(struct sr_discipline *sd, struct bioc_discipline *bd) in sr_raid1c_ioctl() argument
198 struct sr_raid1c *mdd_raid1c = &sd->mds.mdd_raid1c; in sr_raid1c_ioctl()
199 return sr_crypto_ioctl_internal(sd, &mdd_raid1c->sr1c_crypto, bd); in sr_raid1c_ioctl()
203 sr_raid1c_alloc_resources(struct sr_discipline *sd) in sr_raid1c_alloc_resources() argument
205 struct sr_raid1c *mdd_raid1c = &sd->mds.mdd_raid1c; in sr_raid1c_alloc_resources()
206 return sr_crypto_alloc_resources_internal(sd, &mdd_raid1c->sr1c_crypto); in sr_raid1c_alloc_resources()
210 sr_raid1c_free_resources(struct sr_discipline *sd) in sr_raid1c_free_resources() argument
212 struct sr_raid1c *mdd_raid1c = &sd->mds.mdd_raid1c; in sr_raid1c_free_resources()
213 sr_crypto_free_resources_internal(sd, &mdd_raid1c->sr1c_crypto); in sr_raid1c_free_resources()
219 struct sr_discipline *sd = wu->swu_dis; in sr_raid1c_dev_rw() local
221 struct sr_raid1c *mdd_raid1c = &sd->mds.mdd_raid1c; in sr_raid1c_dev_rw()
233 ios = sd->sd_meta->ssdi.ssd_chunk_no; in sr_raid1c_dev_rw()
241 sd->sd_meta->ssdi.ssd_chunk_no; in sr_raid1c_dev_rw()
242 scp = sd->sd_vol.sv_chunks[chunk]; in sr_raid1c_dev_rw()
251 if (rt++ < sd->sd_meta->ssdi.ssd_chunk_no) in sr_raid1c_dev_rw()
258 DEVNAME(sd->sd_sc)); in sr_raid1c_dev_rw()
264 scp = sd->sd_vol.sv_chunks[chunk]; in sr_raid1c_dev_rw()
284 ccb = sr_ccb_rw(sd, chunk, blkno, xs->datalen, xs->data, in sr_raid1c_dev_rw()
289 DEVNAME(sd->sd_sc), in sr_raid1c_dev_rw()
290 sd->sd_meta->ssd_devname); in sr_raid1c_dev_rw()
311 sr_raid1c_meta_opt_handler(struct sr_discipline *sd, struct sr_meta_opt_hdr *om) in sr_raid1c_meta_opt_handler() argument
313 struct sr_raid1c *mdd_raid1c = &sd->mds.mdd_raid1c; in sr_raid1c_meta_opt_handler()
314 return sr_crypto_meta_opt_handler_internal(sd, in sr_raid1c_meta_opt_handler()