diff options
Diffstat (limited to 'sys/dev/softraid.c')
| -rw-r--r-- | sys/dev/softraid.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c index b7216d91779..1b30c86cdb7 100644 --- a/sys/dev/softraid.c +++ b/sys/dev/softraid.c @@ -1,4 +1,4 @@ -/* $OpenBSD: softraid.c,v 1.293 2013/03/29 12:00:59 jsing Exp $ */ +/* $OpenBSD: softraid.c,v 1.294 2013/03/30 02:02:13 jsing Exp $ */ /* * Copyright (c) 2007, 2008, 2009 Marco Peereboom <marco@peereboom.us> * Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org> @@ -3874,7 +3874,7 @@ sr_discipline_init(struct sr_discipline *sd, int level) sd->sd_scsi_start_stop = sr_raid_start_stop; sd->sd_scsi_sync = sr_raid_sync; sd->sd_scsi_rw = NULL; - sd->sd_scsi_intr = NULL; + sd->sd_scsi_intr = sr_raid_intr; sd->sd_scsi_done = NULL; sd->sd_set_chunk_state = sr_set_chunk_state; sd->sd_set_vol_state = sr_set_vol_state; @@ -4083,6 +4083,26 @@ sr_raid_sync(struct sr_workunit *wu) } void +sr_raid_intr(struct buf *bp) +{ + struct sr_ccb *ccb = (struct sr_ccb *)bp; + struct sr_workunit *wu = ccb->ccb_wu; +#ifdef SR_DEBUG + struct sr_discipline *sd = wu->swu_dis; + struct scsi_xfer *xs = wu->swu_xs; +#endif + int s; + + DNPRINTF(SR_D_INTR, "%s: %s %s intr bp %p xs %p\n", + DEVNAME(sd->sd_sc), sd->sd_meta->ssd_devname, sd->sd_name, bp, xs); + + s = splbio(); + sr_ccb_done(ccb); + sr_wu_done(wu); + splx(s); +} + +void sr_startwu_callback(void *arg1, void *arg2) { struct sr_discipline *sd = arg1; |
