* [PATCH] nbd: clear disconnected on reconnect
@ 2017-07-25 17:31 josef
2017-07-25 19:58 ` Jens Axboe
0 siblings, 1 reply; 2+ messages in thread
From: josef @ 2017-07-25 17:31 UTC (permalink / raw)
To: axboe, nbd-general, linux-block, kernel-team; +Cc: Josef Bacik
From: Josef Bacik <jbacik@fb.com>
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 <dmm@fb.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
---
drivers/block/nbd.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 64b19b1..5bdf923 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -923,6 +923,8 @@ static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
mutex_unlock(&nsock->tx_lock);
sockfd_put(old);
+ clear_bit(NBD_DISCONNECTED, &config->runtime_flags);
+
/* We take the tx_mutex in an error path in the recv_work, so we
* need to queue_work outside of the tx_mutex.
*/
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] nbd: clear disconnected on reconnect
2017-07-25 17:31 [PATCH] nbd: clear disconnected on reconnect josef
@ 2017-07-25 19:58 ` Jens Axboe
0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2017-07-25 19:58 UTC (permalink / raw)
To: josef, nbd-general, linux-block, kernel-team; +Cc: Josef Bacik
On 07/25/2017 11:31 AM, josef@toxicpanda.com wrote:
> From: Josef Bacik <jbacik@fb.com>
>
> 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.
Will add for 4.13. Any chance that you can write blktests regression
tests for some of the bugs that you are fixing for nbd? Would be nice
to have that be part of the regular regression suite.
--
Jens Axboe
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-07-25 19:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-25 17:31 [PATCH] nbd: clear disconnected on reconnect josef
2017-07-25 19:58 ` Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox