nvmet: model_number must be immutable once set
authorMax Gurtovoy <mgurtovoy@nvidia.com>
Wed, 17 Feb 2021 17:19:40 +0000 (17:19 +0000)
committerChristoph Hellwig <hch@lst.de>
Fri, 5 Mar 2021 12:41:03 +0000 (13:41 +0100)
commitd9f273b7585c380d7a10d4b3187ddc2d37f2740b
tree998d7f00c98c8e32455368f243f5ccef5ab577bf
parent32feb6de47242e54692eceab52cfae8616aa0518
nvmet: model_number must be immutable once set

In case we have already established connection to nvmf target, it
shouldn't be allowed to change the model_number. E.g. if someone will
identify ctrl and get model_number of "my_model" later on will change
the model_numbel via configfs to "my_new_model" this will break the NVMe
specification for "Get Log Page – Persistent Event Log" that refers to
Model Number as: "This field contains the same value as reported in the
Model Number field of the Identify Controller data structure, bytes
63:24."

Although it doesn't mentioned explicitly that this field can't be
changed, we can assume it.

So allow setting this field only once: using configfs or in the first
identify ctrl operation.

Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/admin-cmd.c
drivers/nvme/target/configfs.c
drivers/nvme/target/core.c
drivers/nvme/target/nvmet.h