From 5fea968e4bf46620a4cdce818615009b346633b2 Mon Sep 17 00:00:00 2001 From: "Rajashekhara, Mahesh" Date: Mon, 10 May 2010 04:12:28 -0700 Subject: [PATCH] --- yaml --- r: 195716 b: refs/heads/master c: e3cc268fe4a0ad1cbefbc53cee35c80281e609b8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/aacraid/aachba.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 9d5c9f0bfbd9..1644758a0993 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5ca05594097438f81337e53ad50c2d17ffc28238 +refs/heads/master: e3cc268fe4a0ad1cbefbc53cee35c80281e609b8 diff --git a/trunk/drivers/scsi/aacraid/aachba.c b/trunk/drivers/scsi/aacraid/aachba.c index 7e26ebc26661..24b1ba06ece4 100644 --- a/trunk/drivers/scsi/aacraid/aachba.c +++ b/trunk/drivers/scsi/aacraid/aachba.c @@ -328,6 +328,16 @@ int aac_get_config_status(struct aac_dev *dev, int commit_flag) return status; } +static void aac_expose_phy_device(struct scsi_cmnd *scsicmd) +{ + char inq_data; + scsi_sg_copy_to_buffer(scsicmd, &inq_data, sizeof(inq_data)); + if ((inq_data & 0x20) && (inq_data & 0x1f) == TYPE_DISK) { + inq_data &= 0xdf; + scsi_sg_copy_from_buffer(scsicmd, &inq_data, sizeof(inq_data)); + } +} + /** * aac_get_containers - list containers * @common: adapter to probe @@ -2573,6 +2583,11 @@ static void aac_srb_callback(void *context, struct fib * fibptr) scsi_dma_unmap(scsicmd); + /* expose physical device if expose_physicald flag is on */ + if (scsicmd->cmnd[0] == INQUIRY && !(scsicmd->cmnd[1] & 0x01) + && expose_physicals > 0) + aac_expose_phy_device(scsicmd); + /* * First check the fib status */