James, Attached is a mail and patch from the iser maintainer that fixes a bug in the patchset we just sent where we free a struct then try to reference it later. The patch was made over scsi-misc. If it is not too late it could go into rc1. If it is too late then I will resend it with my other bugfixe patches we had queued up and are testing. Signed-off-by: Mike Christie <michaelc@xxxxxxxxxxx> Or Gerlitz wrote: > Mike said he might be busy these days, so i need some help from people on this list > to validate that indeed the patches pushed to Linus break iscsi in session_destroy > so we can send upstream a fixing patch (eg in the spirit of the attached). >
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index 7e6e031..ca590cd 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -1322,6 +1322,7 @@ void iscsi_session_teardown(struct iscsi { struct Scsi_Host *shost = iscsi_session_to_shost(cls_session); struct iscsi_session *session = iscsi_hostdata(shost->hostdata); + struct module *owner = cls_session->transport->owner; scsi_remove_host(shost); @@ -1330,7 +1331,7 @@ void iscsi_session_teardown(struct iscsi iscsi_destroy_session(cls_session); scsi_host_put(shost); - module_put(cls_session->transport->owner); + module_put(owner); } EXPORT_SYMBOL_GPL(iscsi_session_teardown);