nvme: fix incorrect behavior when BLKROSET is called by the user
authorSagi Grimberg <sagi@grimberg.me>
Mon, 9 Nov 2020 10:57:34 +0000 (02:57 -0800)
committerChristoph Hellwig <hch@lst.de>
Mon, 9 Nov 2020 16:39:15 +0000 (17:39 +0100)
The offending commit breaks BLKROSET ioctl because a device
revalidation will blindly override BLKROSET setting. Hence,
we remove the disk rw setting in case NVME_NS_ATTR_RO is cleared
from by the controller.

Fixes: 1293477f4f32 ("nvme: set gendisk read only based on nsattr")
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c

index 40ca71b29bb91a94ff5f7807454270eaf8e03c54..9b01afcb7777b848fdd6742f51e7c5512176bfff 100644 (file)
@@ -2060,8 +2060,6 @@ static void nvme_update_disk_info(struct gendisk *disk,
 
        if (id->nsattr & NVME_NS_ATTR_RO)
                set_disk_ro(disk, true);
-       else
-               set_disk_ro(disk, false);
 }
 
 static inline bool nvme_first_scan(struct gendisk *disk)