Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a702adce authored by Bart Van Assche's avatar Bart Van Assche Committed by Roland Dreier
Browse files

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: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 2d7091bc
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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