Skip to content

Commit 7a362ea

Browse files
Josef Bacikaxboe
authored andcommitted
nbd: clear disconnected on reconnect
If our device loses its connection for longer than the dead timeout we will set NBD_DISCONNECTED in order to quickly fail any pending IO's that flood in after the IO's that were waiting during the dead timer. However if we re-connect at some point in the future we'll still see this DISCONNECTED flag set if we then lose our connection again after that, which means we won't get notifications for our newly lost connections. Fix this by just clearing the DISCONNECTED flag on reconnect in order to make sure everything works as it's supposed to. Reported-by: Dan Melnic <[email protected]> Signed-off-by: Josef Bacik <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
1 parent 76451d7 commit 7a362ea

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/block/nbd.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -923,6 +923,8 @@ static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
923923
mutex_unlock(&nsock->tx_lock);
924924
sockfd_put(old);
925925

926+
clear_bit(NBD_DISCONNECTED, &config->runtime_flags);
927+
926928
/* We take the tx_mutex in an error path in the recv_work, so we
927929
* need to queue_work outside of the tx_mutex.
928930
*/

0 commit comments

Comments
 (0)