Skip to content

Commit

Permalink
firewire: fw-sbp2: skip unnecessary logout
Browse files Browse the repository at this point in the history
Don't attempt to send a logout ORB if the target was already unplugged
or had its link switched off.  If two targets are attached, this
enhances the chance to quickly reconnect to the remaining target when
one target is plugged out.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Acked-by: Jarod Wilson <jwilson@redhat.com>
  • Loading branch information
Stefan Richter committed Jan 30, 2008
1 parent f148e20 commit 4dccd02
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions drivers/firewire/fw-sbp2.c
Original file line number Diff line number Diff line change
Expand Up @@ -606,13 +606,17 @@ static void sbp2_release_target(struct kref *kref)
struct sbp2_logical_unit *lu, *next;
struct Scsi_Host *shost =
container_of((void *)tgt, struct Scsi_Host, hostdata[0]);
struct fw_device *device = fw_device(tgt->unit->device.parent);

list_for_each_entry_safe(lu, next, &tgt->lu_list, link) {
if (lu->sdev)
scsi_remove_device(lu->sdev);

sbp2_send_management_orb(lu, tgt->node_id, lu->generation,
SBP2_LOGOUT_REQUEST, lu->login_id, NULL);
if (!fw_device_is_shutdown(device))
sbp2_send_management_orb(lu, tgt->node_id,
lu->generation, SBP2_LOGOUT_REQUEST,
lu->login_id, NULL);

fw_core_remove_address_handler(&lu->address_handler);
list_del(&lu->link);
kfree(lu);
Expand Down

0 comments on commit 4dccd02

Please sign in to comment.