summaryrefslogtreecommitdiffstats
path: root/sys/dev/softraid.c
diff options
context:
space:
mode:
authormarco <marco@openbsd.org>2011-04-14 02:11:23 +0000
committermarco <marco@openbsd.org>2011-04-14 02:11:23 +0000
commite5a738944465a5cd1b5fb25f7488a8447fd4ddd2 (patch)
tree78007e99aaffa168bec2e2db68359d2d0cb82fb4 /sys/dev/softraid.c
parentadd missing #include "pf.h" for NPF; ok mikeb, claudio, mpf (diff)
downloadwireguard-openbsd-e5a738944465a5cd1b5fb25f7488a8447fd4ddd2.tar.xz
wireguard-openbsd-e5a738944465a5cd1b5fb25f7488a8447fd4ddd2.zip
Ignore scsi start stop instead of trying to be clever. A softraid
discipline should always reflect the correct status. This fixes unexpected state changes jordan saw.
Diffstat (limited to 'sys/dev/softraid.c')
-rw-r--r--sys/dev/softraid.c29
1 files changed, 7 insertions, 22 deletions
diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c
index ce7cc53bd09..c81fd62636d 100644
--- a/sys/dev/softraid.c
+++ b/sys/dev/softraid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: softraid.c,v 1.226 2011/04/06 15:36:13 marco Exp $ */
+/* $OpenBSD: softraid.c,v 1.227 2011/04/14 02:11:23 marco Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org>
@@ -3570,35 +3570,20 @@ sr_raid_request_sense(struct sr_workunit *wu)
int
sr_raid_start_stop(struct sr_workunit *wu)
{
- struct sr_discipline *sd = wu->swu_dis;
struct scsi_xfer *xs = wu->swu_xs;
struct scsi_start_stop *ss = (struct scsi_start_stop *)xs->cmd;
- int rv = 1;
DNPRINTF(SR_D_DIS, "%s: sr_raid_start_stop\n",
DEVNAME(sd->sd_sc));
if (!ss)
- return (rv);
-
- if (ss->byte2 == 0x00) {
- /* START */
- if (sd->sd_vol_status == BIOC_SVOFFLINE) {
- /* bring volume online */
- /* XXX check to see if volume can be brought online */
- sd->sd_vol_status = BIOC_SVONLINE;
- }
- rv = 0;
- } else /* XXX is this the check? if (byte == 0x01) */ {
- /* STOP */
- if (sd->sd_vol_status == BIOC_SVONLINE) {
- /* bring volume offline */
- sd->sd_vol_status = BIOC_SVOFFLINE;
- }
- rv = 0;
- }
+ return (1);
- return (rv);
+ /*
+ * do nothing!
+ * a softraid discipline should always reflect correct status
+ */
+ return (0);
}
int