]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.39/patches.arch/s390-12-16-zfcp_reference_counting_for_cfdc_requests.patch
Imported linux-2.6.27.39 suse/xen patches.
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.arch / s390-12-16-zfcp_reference_counting_for_cfdc_requests.patch
diff --git a/src/patches/suse-2.6.27.39/patches.arch/s390-12-16-zfcp_reference_counting_for_cfdc_requests.patch b/src/patches/suse-2.6.27.39/patches.arch/s390-12-16-zfcp_reference_counting_for_cfdc_requests.patch
new file mode 100644 (file)
index 0000000..9774729
--- /dev/null
@@ -0,0 +1,26 @@
+From: Gerald Schaefer <geraldsc@de.ibm.com>
+Subject: zfcp: Fix reference counting for cfdc requests
+References: bnc#487755,LTC#52849
+
+Symptom:     Setting adapter off-line will hang.
+Problem:     The adapter reference count can get negative.
+Solution:    Increase the reference count when issuing
+             cfdc requests.
+
+Acked-by: John Jolly <jjolly@suse.de>
+---
+ drivers/s390/scsi/zfcp_cfdc.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+Index: linux-sles11/drivers/s390/scsi/zfcp_cfdc.c
+===================================================================
+--- linux-sles11.orig/drivers/s390/scsi/zfcp_cfdc.c
++++ linux-sles11/drivers/s390/scsi/zfcp_cfdc.c
+@@ -207,6 +207,7 @@ static long zfcp_cfdc_dev_ioctl(struct f
+               retval = -ENXIO;
+               goto free_buffer;
+       }
++      zfcp_adapter_get(adapter);
+       retval = zfcp_cfdc_sg_setup(data->command, fsf_cfdc->sg,
+                                   data_user->control_file);