Thread (38 messages) 38 messages, 10 authors, 2020-11-10

Re: [PATCH 03/24] nvme: let set_capacity_revalidate_and_notify update the bdev size

From: Hannes Reinecke <hare@suse.de>
Date: 2020-11-09 09:25:28
Also in: ceph-devel, dm-devel, linux-block, linux-fsdevel, linux-nvme, linux-scsi, xen-devel

On 11/9/20 9:53 AM, Christoph Hellwig wrote:
On Mon, Nov 09, 2020 at 08:53:58AM +0100, Hannes Reinecke wrote:
quoted
quoted
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;
[ .. ]
quoted
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.
Okay, then: What would be the correct way of handling a size update for NVMe multipath?
Assuming we're getting an AEN for each path signalling the size change
(or a controller reset leading to a size change).
So if we're updating the size of the multipath device together with the path device at the first AEN/reset we'll end up with the other paths having a different size than the multipath device (and the path we've just been updating).
- Do we care, or cross fingers and hope for the best?
- Shouldn't we detect the case where we won't get a size update for the other paths, or, indeed, we have a genuine device size mismatch due to a misconfiguration on the target?

IE shouldn't we have a flag 'size update pending' for the other paths,, to take them out ouf use temporarily until the other AENs/resets have been processed?

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help