浏览代码

sbp2: did not clean up after scsi_add_device() failed

If scsi_add_device() at the end of sbp2_start_device() fails, e.g. due to
transport errors during SCSI inquiry, sbp2 needs to log out of the device
and release all associated resources.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
Stefan Richter 19 年之前
父节点
当前提交
dc3edd5412
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/ieee1394/sbp2.c

+ 2 - 0
drivers/ieee1394/sbp2.c

@@ -960,6 +960,8 @@ alloc_fail:
 	error = scsi_add_device(scsi_id->scsi_host, 0, scsi_id->ud->id, 0);
 	error = scsi_add_device(scsi_id->scsi_host, 0, scsi_id->ud->id, 0);
 	if (error) {
 	if (error) {
 		SBP2_ERR("scsi_add_device failed");
 		SBP2_ERR("scsi_add_device failed");
+		sbp2_logout_device(scsi_id);
+		sbp2_remove_device(scsi_id);
 		return error;
 		return error;
 	}
 	}