diff options
author | Noam Gottlieb <ngottlieb@nvidia.com> | 2021-06-07 12:23:23 +0300 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2021-06-17 15:51:19 +0200 |
commit | 0d148efdf0f0414b2ed2dd9c31e71302bb9ce123 (patch) | |
tree | c19cc225b6fe04596e893ca110cff17fde959c88 /drivers/nvme/target/configfs.c | |
parent | 7ae023c5aa644211bde26db11018fe08b8408bd5 (diff) | |
download | linux-0d148efdf0f0414b2ed2dd9c31e71302bb9ce123.tar.gz linux-0d148efdf0f0414b2ed2dd9c31e71302bb9ce123.tar.bz2 linux-0d148efdf0f0414b2ed2dd9c31e71302bb9ce123.zip |
nvmet: allow mn change if subsys not discovered
Currently, once the subsystem's model_number is set for the first time
there is no way to change it. However, as long as no connection was
established to nvmf target, there is no reason for such restriction and
we should allow to change the subsystem's model_number as many times as
needed.
In addition, in order to simplfy the changes and make the model number
flow more similar to the rest of the attributes in the Identify
Controller data structure, we set a default value for the model number
at the initiation of the subsystem.
Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Signed-off-by: Noam Gottlieb <ngottlieb@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/nvme/target/configfs.c')
-rw-r--r-- | drivers/nvme/target/configfs.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/nvme/target/configfs.c b/drivers/nvme/target/configfs.c index a13da86fb374..9ef8708b92c6 100644 --- a/drivers/nvme/target/configfs.c +++ b/drivers/nvme/target/configfs.c @@ -1154,14 +1154,8 @@ static ssize_t nvmet_subsys_attr_model_show(struct config_item *item, char *page) { struct nvmet_subsys *subsys = to_subsys(item); - int ret; - - mutex_lock(&subsys->lock); - ret = snprintf(page, PAGE_SIZE, "%s\n", subsys->model_number ? - subsys->model_number : NVMET_DEFAULT_CTRL_MODEL); - mutex_unlock(&subsys->lock); - return ret; + return snprintf(page, PAGE_SIZE, "%s\n", subsys->model_number); } static ssize_t nvmet_subsys_attr_model_store_locked(struct nvmet_subsys *subsys, @@ -1169,7 +1163,7 @@ static ssize_t nvmet_subsys_attr_model_store_locked(struct nvmet_subsys *subsys, { int pos = 0, len; - if (subsys->model_number) { + if (subsys->subsys_discovered) { pr_err("Can't set model number. %s is already assigned\n", subsys->model_number); return -EINVAL; |