diff options
author | Bart Van Assche <bart.vanassche@sandisk.com> | 2016-11-21 16:58:18 -0500 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-12-14 13:31:47 -0500 |
commit | 4fa354c9dbfef9226a690d8ee319b046f3067a6a (patch) | |
tree | c03b9e1df1752e7da6c988e5fa99b77e1cb3c5df | |
parent | 290081b45342ef902ed756f929fa9e4feb9f7dab (diff) |
IB/srp: Make writing the add_target sysfs attr interruptible
Avoid that shutdown of srp_daemon is delayed if add_target_mutex is
held by another process.
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
-rw-r--r-- | drivers/infiniband/ulp/srp/ib_srp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c index bb9d73daadfa..8ddc07123193 100644 --- a/drivers/infiniband/ulp/srp/ib_srp.c +++ b/drivers/infiniband/ulp/srp/ib_srp.c | |||
@@ -3299,7 +3299,9 @@ static ssize_t srp_create_target(struct device *dev, | |||
3299 | */ | 3299 | */ |
3300 | scsi_host_get(target->scsi_host); | 3300 | scsi_host_get(target->scsi_host); |
3301 | 3301 | ||
3302 | mutex_lock(&host->add_target_mutex); | 3302 | ret = mutex_lock_interruptible(&host->add_target_mutex); |
3303 | if (ret < 0) | ||
3304 | goto put; | ||
3303 | 3305 | ||
3304 | ret = srp_parse_options(buf, target); | 3306 | ret = srp_parse_options(buf, target); |
3305 | if (ret) | 3307 | if (ret) |
@@ -3455,6 +3457,7 @@ connected: | |||
3455 | out: | 3457 | out: |
3456 | mutex_unlock(&host->add_target_mutex); | 3458 | mutex_unlock(&host->add_target_mutex); |
3457 | 3459 | ||
3460 | put: | ||
3458 | scsi_host_put(target->scsi_host); | 3461 | scsi_host_put(target->scsi_host); |
3459 | if (ret < 0) | 3462 | if (ret < 0) |
3460 | scsi_host_put(target->scsi_host); | 3463 | scsi_host_put(target->scsi_host); |