All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nvme/multipath: revalidate nvme_ns_head gendisk in nvme_validate_ns
@ 2019-07-29 12:40 ` Anthony Iliopoulos
  0 siblings, 0 replies; 10+ messages in thread
From: Anthony Iliopoulos @ 2019-07-29 12:40 UTC (permalink / raw)


When CONFIG_NVME_MULTIPATH is set, only the hidden gendisk associated
with the per-controller ns is run through revalidate_disk when a
rescan is triggered, while the visible blockdev never gets its size
(bdev->bd_inode->i_size) updated to reflect any capacity changes that
may have occurred.

This prevents online resizing of nvme block devices and in extension of
any filesystems atop that will are unable to expand while mounted, as
userspace relies on the blockdev size for obtaining the disk capacity
(via BLKGETSIZE/64 ioctls).

Fix this by explicitly revalidating the actual namespace gendisk in
addition to the per-controller gendisk, when multipath is enabled.

Signed-off-by: Anthony Iliopoulos <ailiopoulos at suse.com>
---
 drivers/nvme/host/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 8f3fbe5ca937..80c7a7ee240b 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1715,6 +1715,7 @@ static void __nvme_revalidate_disk(struct gendisk *disk, struct nvme_id_ns *id)
 	if (ns->head->disk) {
 		nvme_update_disk_info(ns->head->disk, ns, id);
 		blk_queue_stack_limits(ns->head->disk->queue, ns->queue);
+		revalidate_disk(ns->head->disk);
 	}
 #endif
 }
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-07-31 12:05 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-29 12:40 [PATCH] nvme/multipath: revalidate nvme_ns_head gendisk in nvme_validate_ns Anthony Iliopoulos
2019-07-29 12:40 ` Anthony Iliopoulos
2019-07-29 16:04 ` Sagi Grimberg
2019-07-29 16:04   ` Sagi Grimberg
2019-07-30  7:48 ` Johannes Thumshirn
2019-07-30  7:48   ` Johannes Thumshirn
2019-07-30 10:29 ` Christoph Hellwig
2019-07-30 10:29   ` Christoph Hellwig
2019-07-31 12:04 ` Hannes Reinecke
2019-07-31 12:04   ` Hannes Reinecke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.