mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 10:57:46 +00:00
firewire: fw-sbp2: let SCSI shutdown commands through before logout
This affects of course only the "soft shutdown" case, e.g. "modprobe -r firewire-sbp2", while it doesn't matter for hot unplug. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
This commit is contained in:
parent
cf47c7a26c
commit
79352e9f94
1 changed files with 2 additions and 4 deletions
|
@ -520,17 +520,15 @@ static int sbp2_agent_reset(struct fw_unit *unit)
|
||||||
static void sbp2_reconnect(struct work_struct *work);
|
static void sbp2_reconnect(struct work_struct *work);
|
||||||
static struct scsi_host_template scsi_driver_template;
|
static struct scsi_host_template scsi_driver_template;
|
||||||
|
|
||||||
static void
|
static void release_sbp2_device(struct kref *kref)
|
||||||
release_sbp2_device(struct kref *kref)
|
|
||||||
{
|
{
|
||||||
struct sbp2_device *sd = container_of(kref, struct sbp2_device, kref);
|
struct sbp2_device *sd = container_of(kref, struct sbp2_device, kref);
|
||||||
struct Scsi_Host *host =
|
struct Scsi_Host *host =
|
||||||
container_of((void *)sd, struct Scsi_Host, hostdata[0]);
|
container_of((void *)sd, struct Scsi_Host, hostdata[0]);
|
||||||
|
|
||||||
|
scsi_remove_host(host);
|
||||||
sbp2_send_management_orb(sd->unit, sd->node_id, sd->generation,
|
sbp2_send_management_orb(sd->unit, sd->node_id, sd->generation,
|
||||||
SBP2_LOGOUT_REQUEST, sd->login_id, NULL);
|
SBP2_LOGOUT_REQUEST, sd->login_id, NULL);
|
||||||
|
|
||||||
scsi_remove_host(host);
|
|
||||||
fw_core_remove_address_handler(&sd->address_handler);
|
fw_core_remove_address_handler(&sd->address_handler);
|
||||||
fw_notify("removed sbp2 unit %s\n", sd->unit->device.bus_id);
|
fw_notify("removed sbp2 unit %s\n", sd->unit->device.bus_id);
|
||||||
put_device(&sd->unit->device);
|
put_device(&sd->unit->device);
|
||||||
|
|
Loading…
Reference in a new issue