浏览代码

[SCSI] scsi_dh_emc: Add a match function for emc device handler

This patch introduces the match function for emc device handler.  Included
check for TPGS bit before proceeding further.  The match function was
introduced by commit 6c3633d08acf514e2e89aa95d2346ce9d64d719a

Signed-off-by: Babu Moger <babu.moger@netapp.com>
Acked-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Moger, Babu 13 年之前
父节点
当前提交
4f10143f6e
共有 1 个文件被更改,包括 19 次插入0 次删除
  1. 19 0
      drivers/scsi/device_handler/scsi_dh_emc.c

+ 19 - 0
drivers/scsi/device_handler/scsi_dh_emc.c

@@ -629,6 +629,24 @@ static const struct scsi_dh_devlist clariion_dev_list[] = {
 	{NULL, NULL},
 	{NULL, NULL},
 };
 };
 
 
+static bool clariion_match(struct scsi_device *sdev)
+{
+	int i;
+
+	if (scsi_device_tpgs(sdev))
+		return false;
+
+	for (i = 0; clariion_dev_list[i].vendor; i++) {
+		if (!strncmp(sdev->vendor, clariion_dev_list[i].vendor,
+			strlen(clariion_dev_list[i].vendor)) &&
+		    !strncmp(sdev->model, clariion_dev_list[i].model,
+			strlen(clariion_dev_list[i].model))) {
+			return true;
+		}
+	}
+	return false;
+}
+
 static int clariion_bus_attach(struct scsi_device *sdev);
 static int clariion_bus_attach(struct scsi_device *sdev);
 static void clariion_bus_detach(struct scsi_device *sdev);
 static void clariion_bus_detach(struct scsi_device *sdev);
 
 
@@ -642,6 +660,7 @@ static struct scsi_device_handler clariion_dh = {
 	.activate	= clariion_activate,
 	.activate	= clariion_activate,
 	.prep_fn	= clariion_prep_fn,
 	.prep_fn	= clariion_prep_fn,
 	.set_params	= clariion_set_params,
 	.set_params	= clariion_set_params,
+	.match		= clariion_match,
 };
 };
 
 
 static int clariion_bus_attach(struct scsi_device *sdev)
 static int clariion_bus_attach(struct scsi_device *sdev)