forked from Minki/linux
IB/srp: Make writing into the "add_target" sysfs attribute interruptible
Avoid that stopping srp_daemon takes unusually long due to a cable pull by making writing into the "add_target" sysfs attribute interruptible. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
2d7091bcf6
commit
a702adceec
@ -411,6 +411,8 @@ static void srp_path_rec_completion(int status,
|
||||
|
||||
static int srp_lookup_path(struct srp_target_port *target)
|
||||
{
|
||||
int ret;
|
||||
|
||||
target->path.numb_path = 1;
|
||||
|
||||
init_completion(&target->done);
|
||||
@ -431,7 +433,9 @@ static int srp_lookup_path(struct srp_target_port *target)
|
||||
if (target->path_query_id < 0)
|
||||
return target->path_query_id;
|
||||
|
||||
wait_for_completion(&target->done);
|
||||
ret = wait_for_completion_interruptible(&target->done);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (target->status < 0)
|
||||
shost_printk(KERN_WARNING, target->scsi_host,
|
||||
@ -710,7 +714,9 @@ static int srp_connect_target(struct srp_target_port *target)
|
||||
ret = srp_send_req(target);
|
||||
if (ret)
|
||||
return ret;
|
||||
wait_for_completion(&target->done);
|
||||
ret = wait_for_completion_interruptible(&target->done);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* The CM event handling code will set status to
|
||||
|
Loading…
Reference in New Issue
Block a user