Skip to content

Commit 1f273e2

Browse files
committed
Merge branch 'nvme-5.8' of git://git.infradead.org/nvme into block-5.8
Pull NVMe fix from Christoph. * 'nvme-5.8' of git://git.infradead.org/nvme: nvme: explicitly update mpath disk capacity on revalidation
2 parents 579dd91 + 05b2902 commit 1f273e2

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

drivers/nvme/host/core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1980,6 +1980,7 @@ static int __nvme_revalidate_disk(struct gendisk *disk, struct nvme_id_ns *id)
19801980
if (ns->head->disk) {
19811981
nvme_update_disk_info(ns->head->disk, ns, id);
19821982
blk_queue_stack_limits(ns->head->disk->queue, ns->queue);
1983+
nvme_mpath_update_disk_size(ns->head->disk);
19831984
}
19841985
#endif
19851986
return 0;

drivers/nvme/host/nvme.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,16 @@ static inline void nvme_trace_bio_complete(struct request *req,
604604
trace_block_bio_complete(ns->head->disk->queue, req->bio);
605605
}
606606

607+
static inline void nvme_mpath_update_disk_size(struct gendisk *disk)
608+
{
609+
struct block_device *bdev = bdget_disk(disk, 0);
610+
611+
if (bdev) {
612+
bd_set_size(bdev, get_capacity(disk) << SECTOR_SHIFT);
613+
bdput(bdev);
614+
}
615+
}
616+
607617
extern struct device_attribute dev_attr_ana_grpid;
608618
extern struct device_attribute dev_attr_ana_state;
609619
extern struct device_attribute subsys_attr_iopolicy;
@@ -679,6 +689,9 @@ static inline void nvme_mpath_wait_freeze(struct nvme_subsystem *subsys)
679689
static inline void nvme_mpath_start_freeze(struct nvme_subsystem *subsys)
680690
{
681691
}
692+
static inline void nvme_mpath_update_disk_size(struct gendisk *disk)
693+
{
694+
}
682695
#endif /* CONFIG_NVME_MULTIPATH */
683696

684697
#ifdef CONFIG_NVM

0 commit comments

Comments
 (0)