nbd: clear_sock on netlink disconnect
authorJosef Bacik <jbacik@fb.com>
Wed, 16 May 2018 18:51:20 +0000 (14:51 -0400)
committerJens Axboe <axboe@kernel.dk>
Wed, 16 May 2018 18:54:10 +0000 (12:54 -0600)
This is what the ioctl based nbd disconnect does as well.  Without this
the device will just sit there and wait for the connection to go away
(or IO to occur) before the device gets torn down.  Instead clear
everything up on our end so the configuration goes away as quickly as
possible.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/nbd.c

index 64278f472efe433bd9fd9d280667583e639c8a57..06725ce975934f40990ccd58f655bb8a71c73ea0 100644 (file)
@@ -1768,6 +1768,7 @@ static int nbd_genl_disconnect(struct sk_buff *skb, struct genl_info *info)
        }
        mutex_lock(&nbd->config_lock);
        nbd_disconnect(nbd);
+       nbd_clear_sock(nbd);
        mutex_unlock(&nbd->config_lock);
        if (test_and_clear_bit(NBD_HAS_CONFIG_REF,
                               &nbd->config->runtime_flags))