[Midnightbsd-cvs] src [8560] trunk/sys/dev/arcmsr/arcmsr.c: use CAM_DEV_NOT_THERE to report nonexistent LUNs for the virtual processor device.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Mon Sep 19 11:17:56 EDT 2016


Revision: 8560
          http://svnweb.midnightbsd.org/src/?rev=8560
Author:   laffer1
Date:     2016-09-19 11:17:56 -0400 (Mon, 19 Sep 2016)
Log Message:
-----------
use CAM_DEV_NOT_THERE to report nonexistent LUNs for the virtual processor device.

Modified Paths:
--------------
    trunk/sys/dev/arcmsr/arcmsr.c

Modified: trunk/sys/dev/arcmsr/arcmsr.c
===================================================================
--- trunk/sys/dev/arcmsr/arcmsr.c	2016-09-19 15:16:23 UTC (rev 8559)
+++ trunk/sys/dev/arcmsr/arcmsr.c	2016-09-19 15:17:56 UTC (rev 8560)
@@ -2432,7 +2432,6 @@
 static void arcmsr_handle_virtual_command(struct AdapterControlBlock *acb,
 		union ccb * pccb)
 {
-	pccb->ccb_h.status |= CAM_REQ_CMP;
 	switch (pccb->csio.cdb_io.cdb_bytes[0]) {
 	case INQUIRY: {
 		unsigned char inqdata[36];
@@ -2439,7 +2438,7 @@
 		char *buffer=pccb->csio.data_ptr;
 	
 		if (pccb->ccb_h.target_lun) {
-			pccb->ccb_h.status |= CAM_SEL_TIMEOUT;
+			pccb->ccb_h.status |= CAM_DEV_NOT_THERE;
 			xpt_done(pccb);
 			return;
 		}
@@ -2455,6 +2454,7 @@
 		strncpy(&inqdata[16], "RAID controller ", 16);	/* Product Identification */
 		strncpy(&inqdata[32], "R001", 4); /* Product Revision */
 		memcpy(buffer, inqdata, sizeof(inqdata));
+		pccb->ccb_h.status |= CAM_REQ_CMP;
 		xpt_done(pccb);
 	}
 	break;
@@ -2464,10 +2464,12 @@
 			pccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR;
 			pccb->csio.scsi_status = SCSI_STATUS_CHECK_COND;
 		}
+		pccb->ccb_h.status |= CAM_REQ_CMP;
 		xpt_done(pccb);
 	}
 	break;
 	default:
+		pccb->ccb_h.status |= CAM_REQ_CMP;
 		xpt_done(pccb);
 	}
 }



More information about the Midnightbsd-cvs mailing list