• Markus Pargmann's avatar
    nbd: Remove signal usage · 23272a67
    Markus Pargmann authored
    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: default avatarMarkus Pargmann <mpa@pengutronix.de>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    23272a67
nbd.c 24.5 KB