commit 23a7691b724548cc096996ab8f1cb5823c573880 Author: Mike Christie 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,