nbd: Remove signal usage
authorMarkus Pargmann <mpa@pengutronix.de>
Thu, 29 Oct 2015 10:51:16 +0000 (11:51 +0100)
committerMarkus Pargmann <mpa@pengutronix.de>
Fri, 5 Feb 2016 07:52:25 +0000 (08:52 +0100)
commit23272a6754b81ff6503e09c743bb4ceeeab39997
treee60250087310c8e4da6476e888cdfad0961daa85
parent27ea43fe2a32f63bb6f442dafc2133232b8af4a6
nbd: Remove signal usage

As discussed on the mailing list, the usage of signals for timeout
handling has a lot of potential issues. The nbd driver used for some
time signals for timeouts. These signals where able to get the threads
out of the blocking socket operations.

This patch removes all signal usage and uses a socket shutdown instead.
The socket descriptor itself is cleared later when the whole nbd device
is closed.

The tasks_lock is removed as we do not depend on this anymore. Instead
a new lock for the socket is introduced so we can safely work with the
socket in the timeout handler outside of the two main threads.

Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
drivers/block/nbd.c