[PATCH 16/23] nvmet: fix access to nvmet_ns::enable using nvmet_subsys::lock
Nilay Shroff
nilay at linux.ibm.com
Sun Nov 8 19:28:21 PST 2026
nvmet_ns::enable is protected by nvmet_subsys::lock. The clang
context analyser complains about accessing ns->enabled without
subsys->lock in nvmet_ns_enable_show():
drivers/nvme/target/configfs.c:741:50: error: reading variable 'enabled' requires holding mutex 'to_nvmet_ns(item).subsys->lock'
[-Werror,-Wthread-safety-analysis]
741 | return sprintf(page, "%d\n", to_nvmet_ns(item)->enabled);
| ^
Fix the above error by acquiring ns->susbsys->lock before
accessing ns->enabled in nvmet_ns_enable_show().
Signed-off-by: Nilay Shroff <nilay at linux.ibm.com>
---
drivers/nvme/target/configfs.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/nvme/target/configfs.c b/drivers/nvme/target/configfs.c
index 34d79fadbf15..ba44d404ad56 100644
--- a/drivers/nvme/target/configfs.c
+++ b/drivers/nvme/target/configfs.c
@@ -737,7 +737,14 @@ CONFIGFS_ATTR(nvmet_ns_, ana_grpid);
static ssize_t nvmet_ns_enable_show(struct config_item *item, char *page)
{
- return sprintf(page, "%d\n", to_nvmet_ns(item)->enabled);
+ struct nvmet_ns *ns = to_nvmet_ns(item);
+ ssize_t ret;
+
+ mutex_lock(&ns->subsys->lock);
+ ret = sprintf(page, "%d\n", ns->enabled);
+ mutex_unlock(&ns->subsys->lock);
+
+ return ret;
}
static ssize_t nvmet_ns_enable_store(struct config_item *item,
--
2.53.0
More information about the Linux-nvme
mailing list