nvme: inherit stable pages constraint in the mpath stack device
authorSagi Grimberg <sagi@grimberg.me>
Thu, 2 Apr 2020 05:44:43 +0000 (22:44 -0700)
committerChristoph Hellwig <hch@lst.de>
Thu, 2 Apr 2020 08:51:46 +0000 (10:51 +0200)
If the backing device require stable pages, we need to set it on the
stack mpath device as well. This applies to rdma/fc transports when
doing data integrity and tcp transport calculating digests.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c

index 2db8563..91c1bd6 100644 (file)
@@ -1897,6 +1897,13 @@ 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);
+               if (bdi_cap_stable_pages_required(ns->queue->backing_dev_info)) {
+                       struct backing_dev_info *info =
+                               ns->head->disk->queue->backing_dev_info;
+
+                        info->capabilities |= BDI_CAP_STABLE_WRITES;
+               }
+
                revalidate_disk(ns->head->disk);
        }
 #endif