forked from pool/open-iscsi
83 lines
2.5 KiB
Plaintext
83 lines
2.5 KiB
Plaintext
commit 23a7691b724548cc096996ab8f1cb5823c573880
|
|
Author: Mike Christie <michaelc@cs.wisc.edu>
|
|
Date: Sat Sep 13 19:35:33 2008 -0500
|
|
|
|
Sync kernel modules with 2.6.27
|
|
|
|
Update kernel modules for 2.6.27 kernel API changes.
|
|
|
|
diff --git a/kernel/Makefile b/kernel/Makefile
|
|
index 139fd7b..7c5b5ac 100644
|
|
--- a/kernel/Makefile
|
|
+++ b/kernel/Makefile
|
|
@@ -101,6 +101,8 @@ linux_2_6_25: has_24_patch
|
|
|
|
linux_2_6_26: $(unpatch_code)
|
|
|
|
+linux_2_6_27: $(unpatch_code)
|
|
+
|
|
do_unpatch_code:
|
|
echo "Un-patching source code for use with linux-2.6.14 and up ..."
|
|
patch -R -E -p1 < $(cur_patched)
|
|
diff --git a/kernel/scsi_transport_iscsi.c b/kernel/scsi_transport_iscsi.c
|
|
index 535e461..7dfb7da 100644
|
|
--- a/kernel/scsi_transport_iscsi.c
|
|
+++ b/kernel/scsi_transport_iscsi.c
|
|
@@ -170,7 +170,7 @@ iscsi_create_endpoint(int dd_size)
|
|
int err;
|
|
|
|
for (id = 1; id < ISCSI_MAX_EPID; id++) {
|
|
- dev = class_find_device(&iscsi_endpoint_class, &id,
|
|
+ dev = class_find_device(&iscsi_endpoint_class, NULL, &id,
|
|
iscsi_match_epid);
|
|
if (!dev)
|
|
break;
|
|
@@ -219,14 +219,21 @@ EXPORT_SYMBOL_GPL(iscsi_destroy_endpoint);
|
|
|
|
struct iscsi_endpoint *iscsi_lookup_endpoint(u64 handle)
|
|
{
|
|
+ struct iscsi_endpoint *ep;
|
|
struct device *dev;
|
|
|
|
- dev = class_find_device(&iscsi_endpoint_class, &handle,
|
|
+ dev = class_find_device(&iscsi_endpoint_class, NULL, &handle,
|
|
iscsi_match_epid);
|
|
if (!dev)
|
|
return NULL;
|
|
|
|
- return iscsi_dev_to_endpoint(dev);
|
|
+ ep = iscsi_dev_to_endpoint(dev);
|
|
+ /*
|
|
+ * we can drop this now because the interface will prevent
|
|
+ * removals and lookups from racing.
|
|
+ */
|
|
+ put_device(dev);
|
|
+ return ep;
|
|
}
|
|
EXPORT_SYMBOL_GPL(iscsi_lookup_endpoint);
|
|
|
|
@@ -240,8 +247,8 @@ static int iscsi_setup_host(struct transport_container *tc, struct device *dev,
|
|
atomic_set(&ihost->nr_scans, 0);
|
|
mutex_init(&ihost->mutex);
|
|
|
|
- snprintf(ihost->scan_workq_name, KOBJ_NAME_LEN, "iscsi_scan_%d",
|
|
- shost->host_no);
|
|
+ snprintf(ihost->scan_workq_name, sizeof(ihost->scan_workq_name),
|
|
+ "iscsi_scan_%d", shost->host_no);
|
|
ihost->scan_workq = create_singlethread_workqueue(
|
|
ihost->scan_workq_name);
|
|
if (!ihost->scan_workq)
|
|
diff --git a/kernel/scsi_transport_iscsi.h b/kernel/scsi_transport_iscsi.h
|
|
index b7652e3..7013828 100644
|
|
--- a/kernel/scsi_transport_iscsi.h
|
|
+++ b/kernel/scsi_transport_iscsi.h
|
|
@@ -198,7 +198,7 @@ struct iscsi_cls_host {
|
|
atomic_t nr_scans;
|
|
struct mutex mutex;
|
|
struct workqueue_struct *scan_workq;
|
|
- char scan_workq_name[KOBJ_NAME_LEN];
|
|
+ char scan_workq_name[20];
|
|
};
|
|
|
|
extern void iscsi_host_for_each_session(struct Scsi_Host *shost,
|