aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid/aachba.c
diff options
context:
space:
mode:
authorMark Haverkamp <markh@osdl.org>2005-09-26 16:04:56 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-09-26 18:42:50 -0400
commit131256cf203d0df62014dda8453a70cb6af0d0bb (patch)
tree6e7ba27ba4d4181a312a7b1bec385cf68b501dcd /drivers/scsi/aacraid/aachba.c
parent2f130980d14cb938226011875ca5224cd46dc1f9 (diff)
[SCSI] aacraid: handle AIF hotplug events (update)
Received from Mark Salyzyn from Adaptec. Hotplug sniffs the AIFs (events) from the adapter and if a container change resulting in the device going offline (container zero), online (container zero completed) or changing capacity (morph) it will take actions by calling the appropriate API. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aacraid/aachba.c')
-rw-r--r--drivers/scsi/aacraid/aachba.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 0a209b2cd69..85d133c40bd 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -479,7 +479,7 @@ static int aac_get_container_name(struct scsi_cmnd * scsicmd, int cid)
479 * is updated in the struct fsa_dev_info structure rather than returned. 479 * is updated in the struct fsa_dev_info structure rather than returned.
480 */ 480 */
481 481
482static int probe_container(struct aac_dev *dev, int cid) 482int probe_container(struct aac_dev *dev, int cid)
483{ 483{
484 struct fsa_dev_info *fsa_dev_ptr; 484 struct fsa_dev_info *fsa_dev_ptr;
485 int status; 485 int status;
@@ -1471,6 +1471,8 @@ int aac_scsi_cmd(struct scsi_cmnd * scsicmd)
1471 case TEST_UNIT_READY: 1471 case TEST_UNIT_READY:
1472 spin_unlock_irq(host->host_lock); 1472 spin_unlock_irq(host->host_lock);
1473 probe_container(dev, cid); 1473 probe_container(dev, cid);
1474 if ((fsa_dev_ptr[cid].valid & 1) == 0)
1475 fsa_dev_ptr[cid].valid = 0;
1474 spin_lock_irq(host->host_lock); 1476 spin_lock_irq(host->host_lock);
1475 if (fsa_dev_ptr[cid].valid == 0) { 1477 if (fsa_dev_ptr[cid].valid == 0) {
1476 scsicmd->result = DID_NO_CONNECT << 16; 1478 scsicmd->result = DID_NO_CONNECT << 16;