On Mon, Nov 09, 2020 at 08:53:58AM +0100, Hannes Reinecke wrote: >> index 376096bfc54a83..4e86c9aafd88a7 100644 >> --- a/drivers/nvme/host/core.c >> +++ b/drivers/nvme/host/core.c >> @@ -2053,7 +2053,7 @@ static void nvme_update_disk_info(struct gendisk *disk, >> capacity = 0; >> } >> - set_capacity_revalidate_and_notify(disk, capacity, false); >> + set_capacity_revalidate_and_notify(disk, capacity, true); >> nvme_config_discard(disk, ns); >> nvme_config_write_zeroes(disk, ns); >> @@ -2136,7 +2136,6 @@ static int nvme_update_ns_info(struct nvme_ns *ns, struct nvme_id_ns *id) >> blk_stack_limits(&ns->head->disk->queue->limits, >> &ns->queue->limits, 0); >> blk_queue_update_readahead(ns->head->disk->queue); >> - nvme_update_bdev_size(ns->head->disk); >> blk_mq_unfreeze_queue(ns->head->disk->queue); >> } >> #endif > > Hold on. > This, at the very least, should be a separate patch. > With this you are changing the behaviour of nvme multipath. > > Originally nvme multipath would update/change the size of the multipath > device according to the underlying path devices. > With this patch the size of the multipath device will _not_ change if there > is a change on the underlying devices. Yes, it will. Take a close look at nvme_update_disk_info and how it is called.