Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7bee6074 authored by Keith Busch's avatar Keith Busch Committed by Jens Axboe
Browse files

NVMe: Reread partitions on metadata formats



This patch has the driver automatically reread partitions if a namespace
has a separate metadata format. Previously revalidating a disk was
sufficient to get the correct capacity set on such formatted drives,
but partitions that may exist would not have been surfaced.

Reported-by: default avatarPaul Grabinar <paul.grabinar@ranbarg.com>
Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Cc: Matthew Wilcox <willy@linux.intel.com>
Tested-by: default avatarPaul Grabinar <paul.grabinar@ranbarg.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 77b5a084
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -2108,8 +2108,17 @@ static void nvme_alloc_ns(struct nvme_dev *dev, unsigned nsid)
		goto out_free_disk;

	add_disk(ns->disk);
	if (ns->ms)
		revalidate_disk(ns->disk);
	if (ns->ms) {
		struct block_device *bd = bdget_disk(ns->disk, 0);
		if (!bd)
			return;
		if (blkdev_get(bd, FMODE_READ, NULL)) {
			bdput(bd);
			return;
		}
		blkdev_reread_part(bd);
		blkdev_put(bd, FMODE_READ);
	}
	return;
 out_free_disk:
	kfree(disk);