mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 04:10:18 +09:00
SCSI: fc class: fix fc_transport_init error handling
commit 48de68a40a upstream.
If transport_class_register fails we should unregister any
registered classes, or we will leak memory or other
resources.
I did a quick modprobe of scsi_transport_fc to test the
patch.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1ab0714daa
commit
fdf2675111
@@ -648,11 +648,22 @@ static __init int fc_transport_init(void)
|
||||
return error;
|
||||
error = transport_class_register(&fc_vport_class);
|
||||
if (error)
|
||||
return error;
|
||||
goto unreg_host_class;
|
||||
error = transport_class_register(&fc_rport_class);
|
||||
if (error)
|
||||
return error;
|
||||
return transport_class_register(&fc_transport_class);
|
||||
goto unreg_vport_class;
|
||||
error = transport_class_register(&fc_transport_class);
|
||||
if (error)
|
||||
goto unreg_rport_class;
|
||||
return 0;
|
||||
|
||||
unreg_rport_class:
|
||||
transport_class_unregister(&fc_rport_class);
|
||||
unreg_vport_class:
|
||||
transport_class_unregister(&fc_vport_class);
|
||||
unreg_host_class:
|
||||
transport_class_unregister(&fc_host_class);
|
||||
return error;
|
||||
}
|
||||
|
||||
static void __exit fc_transport_exit(void)
|
||||
|
||||
Reference in New Issue
Block a user