|
@@ -964,10 +964,6 @@ static void nbd_bdev_reset(struct block_device *bdev)
|
|
|
if (bdev->bd_openers > 1)
|
|
|
return;
|
|
|
bd_set_size(bdev, 0);
|
|
|
- if (max_part > 0) {
|
|
|
- blkdev_reread_part(bdev);
|
|
|
- bdev->bd_invalidated = 1;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
static void nbd_parse_flags(struct nbd_device *nbd)
|
|
@@ -1282,6 +1278,9 @@ static int nbd_open(struct block_device *bdev, fmode_t mode)
|
|
|
refcount_set(&nbd->config_refs, 1);
|
|
|
refcount_inc(&nbd->refs);
|
|
|
mutex_unlock(&nbd->config_lock);
|
|
|
+ bdev->bd_invalidated = 1;
|
|
|
+ } else if (nbd_disconnected(nbd->config)) {
|
|
|
+ bdev->bd_invalidated = 1;
|
|
|
}
|
|
|
out:
|
|
|
mutex_unlock(&nbd_index_mutex);
|