From: Swen Schillig <swen@vnet.ibm.com>
To: James Bottomley <James.Bottomley@steeleye.com>
Cc: linux-scsi@vger.kernel.org, linux-s390@vger.kernel.org,
christof.schmitt@de.ibm.com
Subject: [PATCH] zfcp: Report FCP LUN to SCSI midlayer
Date: Tue, 19 Jun 2007 10:25:30 +0200 [thread overview]
Message-ID: <200706191025.30986.swen@vnet.ibm.com> (raw)
From: Christof Schmitt <christof.schmitt@de.ibm.com>
When reporting SCSI devices to the SCSI midlayer, use the FCP LUN as
LUN reported to the SCSI layer. With this approach, zfcp does not have
to create unique LUNS, and this code can be removed.
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
---
drivers/s390/scsi/zfcp_aux.c | 22 ++++------------------
drivers/scsi/scsi_scan.c | 3 ++-
include/scsi/scsi_device.h | 1 +
3 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 821cde6..c631cf7 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -815,9 +815,7 @@ zfcp_get_adapter_by_busid(char *bus_id)
struct zfcp_unit *
zfcp_unit_enqueue(struct zfcp_port *port, fcp_lun_t fcp_lun)
{
- struct zfcp_unit *unit, *tmp_unit;
- unsigned int scsi_lun;
- int found;
+ struct zfcp_unit *unit;
/*
* check that there is no unit with this FCP_LUN already in list
@@ -863,22 +861,10 @@ zfcp_unit_enqueue(struct zfcp_port *port, fcp_lun_t fcp_lun)
}
zfcp_unit_get(unit);
-
- scsi_lun = 0;
- found = 0;
+ unit->scsi_lun = scsilun_to_int((struct scsi_lun *)&unit->fcp_lun);
+
write_lock_irq(&zfcp_data.config_lock);
- list_for_each_entry(tmp_unit, &port->unit_list_head, list) {
- if (tmp_unit->scsi_lun != scsi_lun) {
- found = 1;
- break;
- }
- scsi_lun++;
- }
- unit->scsi_lun = scsi_lun;
- if (found)
- list_add_tail(&unit->list, &tmp_unit->list);
- else
- list_add_tail(&unit->list, &port->unit_list_head);
+ list_add_tail(&unit->list, &port->unit_list_head);
atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &unit->status);
atomic_set_mask(ZFCP_STATUS_COMMON_RUNNING, &unit->status);
write_unlock_irq(&zfcp_data.config_lock);
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 662577f..cf95ad9 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1213,7 +1213,7 @@ static void scsi_sequential_lun_scan(struct scsi_target *starget,
* Given a struct scsi_lun of: 0a 04 0b 03 00 00 00 00, this function returns
* the integer: 0x0b030a04
**/
-static int scsilun_to_int(struct scsi_lun *scsilun)
+int scsilun_to_int(struct scsi_lun *scsilun)
{
int i;
unsigned int lun;
@@ -1224,6 +1224,7 @@ static int scsilun_to_int(struct scsi_lun *scsilun)
scsilun->scsi_lun[i + 1]) << (i * 8));
return lun;
}
+EXPORT_SYMBOL(scsilun_to_int);
/**
* int_to_scsilun: reverts an int into a scsi_lun
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index 2f3c5b8..6fe1cf6 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -287,6 +287,7 @@ extern void scsi_target_block(struct device *);
extern void scsi_target_unblock(struct device *);
extern void scsi_remove_target(struct device *);
extern void int_to_scsilun(unsigned int, struct scsi_lun *);
+extern int scsilun_to_int(struct scsi_lun *);
extern const char *scsi_device_state_name(enum scsi_device_state);
extern int scsi_is_sdev_device(const struct device *);
extern int scsi_is_target_device(const struct device *);
next reply other threads:[~2007-06-19 8:21 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-19 8:25 Swen Schillig [this message]
2007-06-19 8:28 ` [PATCH] zfcp: Report FCP LUN to SCSI midlayer Hannes Reinecke
2007-06-19 12:19 ` Stefan Richter
2007-06-19 17:12 ` Christoph Hellwig
2007-06-20 2:46 ` James Bottomley
2007-06-21 15:03 ` Christof Schmitt
2007-06-21 16:46 ` Stefan Richter
2007-06-21 16:54 ` Stefan Richter
2007-06-22 1:41 ` James Bottomley
2007-06-22 19:01 ` Stefan Richter
2007-06-21 20:58 ` James Bottomley
2007-06-22 4:40 ` Mike Anderson
2007-06-22 11:34 ` Christof Schmitt
2007-06-22 14:11 ` James Bottomley
2007-06-22 16:16 ` Doug Maxey
2007-06-25 20:43 ` Luben Tuikov
2007-06-25 22:53 ` Stefan Richter
2007-06-25 10:39 ` Swen Schillig
2007-06-25 14:03 ` Hannes Reinecke
2007-06-25 18:57 ` Stefan Richter
2007-06-25 21:27 ` Luben Tuikov
2007-06-25 21:55 ` Stefan Richter
2007-06-26 0:35 ` Luben Tuikov
2007-06-26 21:29 ` Matthew Wilcox
2007-06-25 21:48 ` James Bottomley
2007-06-25 22:27 ` Stefan Richter
2007-06-26 1:04 ` Luben Tuikov
2007-06-26 10:44 ` Stefan Richter
2007-06-26 14:20 ` James Bottomley
2007-06-26 15:47 ` Stefan Richter
2007-06-26 17:01 ` James Bottomley
2007-06-27 0:27 ` Stefan Richter
2007-06-27 0:45 ` [PATCH] SCSI: delete outdated comment in API reference Stefan Richter
2007-06-26 0:49 ` [PATCH] zfcp: Report FCP LUN to SCSI midlayer Luben Tuikov
2007-06-26 9:38 ` Stefan Richter
2007-06-27 10:27 ` Swen Schillig
2007-06-28 4:21 ` Luben Tuikov
2007-06-28 15:40 ` Stefan Richter
2007-06-30 19:07 ` Luben Tuikov
2007-06-30 21:26 ` Stefan Richter
2007-07-01 6:27 ` Luben Tuikov
2007-07-01 11:07 ` Stefan Richter
2007-06-25 20:32 ` Luben Tuikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200706191025.30986.swen@vnet.ibm.com \
--to=swen@vnet.ibm.com \
--cc=James.Bottomley@steeleye.com \
--cc=christof.schmitt@de.ibm.com \
--cc=linux-s390@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox