nvme: set gendisk read only based on nsattr
authorChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Wed, 8 Aug 2018 06:01:06 +0000 (23:01 -0700)
committerChristoph Hellwig <hch@lst.de>
Wed, 8 Aug 2018 09:55:49 +0000 (11:55 +0200)
NVMe 1.3 TP 4005 introduces new filed (NSATTR). This field indicates
whether given namespace is write protected or not. This patch sets the
gendisk associated with the namespace to read only based on the identify
namespace nsattr field.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c

index 603fe59756fbfdc3458881db272bfcac0eef26da..dd8ec1dd92190997f823e0bfb72389baea73b268 100644 (file)
@@ -1484,6 +1484,12 @@ static void nvme_update_disk_info(struct gendisk *disk,
 
        set_capacity(disk, capacity);
        nvme_config_discard(ns);
+
+       if (id->nsattr & (1 << 0))
+               set_disk_ro(disk, true);
+       else
+               set_disk_ro(disk, false);
+
        blk_mq_unfreeze_queue(disk->queue);
 }