nvmet: expose max queues to configfs
Allow to set the max queues the target supports. This is useful for testing the reconnect attempt of the host with changing numbers of supported queues. Signed-off-by: Daniel Wagner <dwagner@suse.de> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Родитель
d416800776
Коммит
3e980f5995
|
@ -1281,6 +1281,34 @@ static ssize_t nvmet_subsys_attr_pi_enable_store(struct config_item *item,
|
|||
CONFIGFS_ATTR(nvmet_subsys_, attr_pi_enable);
|
||||
#endif
|
||||
|
||||
static ssize_t nvmet_subsys_attr_qid_max_show(struct config_item *item,
|
||||
char *page)
|
||||
{
|
||||
return snprintf(page, PAGE_SIZE, "%u\n", to_subsys(item)->max_qid);
|
||||
}
|
||||
|
||||
static ssize_t nvmet_subsys_attr_qid_max_store(struct config_item *item,
|
||||
const char *page, size_t cnt)
|
||||
{
|
||||
struct nvmet_port *port = to_nvmet_port(item);
|
||||
u16 qid_max;
|
||||
|
||||
if (nvmet_is_port_enabled(port, __func__))
|
||||
return -EACCES;
|
||||
|
||||
if (sscanf(page, "%hu\n", &qid_max) != 1)
|
||||
return -EINVAL;
|
||||
|
||||
if (qid_max < 1 || qid_max > NVMET_NR_QUEUES)
|
||||
return -EINVAL;
|
||||
|
||||
down_write(&nvmet_config_sem);
|
||||
to_subsys(item)->max_qid = qid_max;
|
||||
up_write(&nvmet_config_sem);
|
||||
return cnt;
|
||||
}
|
||||
CONFIGFS_ATTR(nvmet_subsys_, attr_qid_max);
|
||||
|
||||
static struct configfs_attribute *nvmet_subsys_attrs[] = {
|
||||
&nvmet_subsys_attr_attr_allow_any_host,
|
||||
&nvmet_subsys_attr_attr_version,
|
||||
|
@ -1288,6 +1316,7 @@ static struct configfs_attribute *nvmet_subsys_attrs[] = {
|
|||
&nvmet_subsys_attr_attr_cntlid_min,
|
||||
&nvmet_subsys_attr_attr_cntlid_max,
|
||||
&nvmet_subsys_attr_attr_model,
|
||||
&nvmet_subsys_attr_attr_qid_max,
|
||||
#ifdef CONFIG_BLK_DEV_INTEGRITY
|
||||
&nvmet_subsys_attr_attr_pi_enable,
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче