[SCSI] scsi_dh_rdac : Add definitions for different RDAC operating modes
authorMoger, Babu <Babu.Moger@lsi.com>
Fri, 8 Apr 2011 17:37:40 +0000 (11:37 -0600)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 1 May 2011 15:45:22 +0000 (10:45 -0500)
This patch adds definitions to support for different operating modes
for LSI rdac storage.  Currently, rdac support 3 operation modes.

1. RDAC mode(legacy)
2. AVT mode
3. IOSHIP mode

These definitions are used while activating the path(rdac_activate).

Signed-off-by: Babu Moger <babu.moger@lsi.com>
Reviewed-by: Yanling Qi <yanling.qi@lsi.com>
Reviewed-by: Sudhir Dachepalli <Sudhir.Dachepalli@lis.com>
Reviewed-by: Somasundaram Krishnasamy <Somasundaram.Krishnasamy@lsi.com>
Reviewed-by: Bob Stankey <Robert.Stankey@lsi.com>
Reviewed-by: Vijay Chauhan <Vijay.Chauhan@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/device_handler/scsi_dh_rdac.c

index 293c183..afb2fb1 100644 (file)
@@ -182,6 +182,12 @@ struct rdac_dh_data {
        struct rdac_controller  *ctlr;
 #define UNINITIALIZED_LUN      (1 << 8)
        unsigned                lun;
+
+#define RDAC_MODE              0
+#define RDAC_MODE_AVT          1
+#define RDAC_MODE_IOSHIP       2
+       unsigned char           mode;
+
 #define RDAC_STATE_ACTIVE      0
 #define RDAC_STATE_PASSIVE     1
        unsigned char           state;
@@ -190,6 +196,11 @@ struct rdac_dh_data {
 #define RDAC_LUN_OWNED         1
 #define RDAC_LUN_AVT           2
        char                    lun_state;
+
+#define RDAC_PREFERRED         0
+#define RDAC_NON_PREFERRED     1
+       char                    preferred;
+
        unsigned char           sense[SCSI_SENSE_BUFFERSIZE];
        union                   {
                struct c2_inquiry c2;
@@ -199,11 +210,15 @@ struct rdac_dh_data {
        } inq;
 };
 
+static const char *mode[] = {
+       "RDAC",
+       "AVT",
+       "IOSHIP",
+};
 static const char *lun_state[] =
 {
        "unowned",
        "owned",
-       "owned (AVT mode)",
 };
 
 struct rdac_queue_data {
@@ -836,8 +851,9 @@ static int rdac_bus_attach(struct scsi_device *sdev)
        spin_unlock_irqrestore(sdev->request_queue->queue_lock, flags);
 
        sdev_printk(KERN_NOTICE, sdev,
-                   "%s: LUN %d (%s)\n",
-                   RDAC_NAME, h->lun, lun_state[(int)h->lun_state]);
+                   "%s: LUN %d (%s) (%s)\n",
+                   RDAC_NAME, h->lun, mode[(int)h->mode],
+                   lun_state[(int)h->lun_state]);
 
        return 0;