Lines Matching full:wu
61 * to start failing when memory pressure kicks in. We can store this in the WU
62 * because we assert that only one ccb per WU will ever be active.
251 sr_crypto_wu_get(struct sr_workunit *wu, int encrypt)
253 struct scsi_xfer *xs = wu->swu_xs;
254 struct sr_discipline *sd = wu->swu_dis;
261 DNPRINTF(SR_D_DIS, "%s: sr_crypto_wu_get wu: %p encrypt: %d\n",
262 DEVNAME(sd->sd_sc), wu, encrypt);
334 crwu->cr_wu = wu;
350 struct sr_workunit *wu = crwu->cr_wu;
351 struct sr_discipline *sd = wu->swu_dis;
354 DEVNAME(wu->swu_dis->sd_sc), crwu);
982 * For each wu allocate the uio, iovec and crypto structures.
1165 sr_crypto_rw(struct sr_workunit *wu)
1170 DNPRINTF(SR_D_DIS, "%s: sr_crypto_rw wu: %p\n",
1171 DEVNAME(wu->swu_dis->sd_sc), wu);
1173 if (wu->swu_xs->flags & SCSI_DATA_OUT) {
1174 crwu = sr_crypto_wu_get(wu, 1);
1185 rv = sr_crypto_rw2(wu, NULL);
1194 struct sr_workunit *wu = crwu->cr_wu;
1197 DNPRINTF(SR_D_INTR, "%s: sr_crypto_write: wu %x xs: %x\n",
1198 DEVNAME(wu->swu_dis->sd_sc), wu, wu->swu_xs);
1202 wu->swu_xs->error = XS_DRIVER_STUFFUP;
1204 sr_crypto_finish_io(wu);
1208 return (sr_crypto_rw2(wu, crwu));
1212 sr_crypto_rw2(struct sr_workunit *wu, struct sr_crypto_wu *crwu)
1214 struct sr_discipline *sd = wu->swu_dis;
1215 struct scsi_xfer *xs = wu->swu_xs;
1221 if (sr_validate_io(wu, &blk, "sr_crypto_rw2"))
1238 sr_wu_enqueue_ccb(wu, ccb);
1242 if (sr_check_io_collision(wu))
1245 sr_raid_startwu(wu);
1251 /* wu is unwound by sr_wu_put */
1258 sr_crypto_done(struct sr_workunit *wu)
1260 struct scsi_xfer *xs = wu->swu_xs;
1268 crwu = sr_crypto_wu_get(wu, 0);
1270 panic("sr_crypto_intr: no wu");
1272 ccb = TAILQ_FIRST(&wu->swu_ccb);
1277 DEVNAME(wu->swu_dis->sd_sc), crwu->cr_crp);
1285 sr_crypto_finish_io(wu);
1290 sr_crypto_finish_io(struct sr_workunit *wu)
1292 struct sr_discipline *sd = wu->swu_dis;
1293 struct scsi_xfer *xs = wu->swu_xs;
1301 DNPRINTF(SR_D_INTR, "%s: sr_crypto_finish_io: wu %x xs: %x\n",
1302 DEVNAME(sc), wu, xs);
1304 if (wu->swu_cb_active == 1)
1306 TAILQ_FOREACH(ccb, &wu->swu_ccb, ccb_link) {
1319 struct sr_workunit *wu = crwu->cr_wu;
1322 DNPRINTF(SR_D_INTR, "%s: sr_crypto_read: wu %x xs: %x\n",
1323 DEVNAME(wu->swu_dis->sd_sc), wu, wu->swu_xs);
1326 wu->swu_xs->error = XS_DRIVER_STUFFUP;
1329 sr_crypto_finish_io(wu);