Messages in this thread Patch in this message | | | From | Markus Pargmann <> | Subject | [PATCH 01/10] nbd: sock_shutdown, remove conditional lock | Date | Mon, 27 Jul 2015 09:12:47 +0200 |
| |
Move the conditional lock from sock_shutdown into the surrounding code.
Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- drivers/block/nbd.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 7b9ae7a65c1e..ff59093c5dc1 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -117,18 +117,14 @@ static void nbd_end_request(struct nbd_device *nbd, struct request *req) /* * Forcibly shutdown the socket causing all listeners to error */ -static void sock_shutdown(struct nbd_device *nbd, int lock) +static void sock_shutdown(struct nbd_device *nbd) { - if (lock) - mutex_lock(&nbd->tx_lock); if (nbd->sock) { dev_warn(disk_to_dev(nbd->disk), "shutting down socket\n"); kernel_sock_shutdown(nbd->sock, SHUT_RDWR); nbd->sock = NULL; del_timer_sync(&nbd->timeout_timer); } - if (lock) - mutex_unlock(&nbd->tx_lock); } static void nbd_xmit_timeout(unsigned long arg) @@ -427,7 +423,9 @@ static int nbd_do_it(struct nbd_device *nbd) ret = dequeue_signal_lock(current, ¤t->blocked, &info); dev_warn(nbd_to_dev(nbd), "pid %d, %s, got signal %d\n", task_pid_nr(current), current->comm, ret); - sock_shutdown(nbd, 1); + mutex_lock(&nbd->tx_lock); + sock_shutdown(nbd); + mutex_unlock(&nbd->tx_lock); ret = -ETIMEDOUT; } @@ -541,7 +539,9 @@ static int nbd_thread(void *data) &info); dev_warn(nbd_to_dev(nbd), "pid %d, %s, got signal %d\n", task_pid_nr(current), current->comm, ret); - sock_shutdown(nbd, 1); + mutex_lock(&nbd->tx_lock); + sock_shutdown(nbd); + mutex_unlock(&nbd->tx_lock); break; } @@ -735,7 +735,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, mutex_lock(&nbd->tx_lock); if (error) return error; - sock_shutdown(nbd, 0); + sock_shutdown(nbd); sock = nbd->sock; nbd->sock = NULL; nbd_clear_que(nbd); -- 2.1.4
| |