Skip to content

Commit 885aa40

Browse files
James Smartsagigrimberg
authored andcommitted
nvme-fabrics: patch target code in prep for FC transport support
- Add FC transport type decoding - Add FC address family decoding Signed-off-by: James Smart <[email protected]> Acked-by: Johannes Thumshirn <[email protected]> Reviewed-by: Jay Freyensee <[email protected]> Signed-off-by: Sagi Grimberg <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
1 parent 721b391 commit 885aa40

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

drivers/nvme/target/configfs.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ static ssize_t nvmet_addr_adrfam_show(struct config_item *item,
3737
return sprintf(page, "ipv6\n");
3838
case NVMF_ADDR_FAMILY_IB:
3939
return sprintf(page, "ib\n");
40+
case NVMF_ADDR_FAMILY_FC:
41+
return sprintf(page, "fc\n");
4042
default:
4143
return sprintf(page, "\n");
4244
}
@@ -59,6 +61,8 @@ static ssize_t nvmet_addr_adrfam_store(struct config_item *item,
5961
port->disc_addr.adrfam = NVMF_ADDR_FAMILY_IP6;
6062
} else if (sysfs_streq(page, "ib")) {
6163
port->disc_addr.adrfam = NVMF_ADDR_FAMILY_IB;
64+
} else if (sysfs_streq(page, "fc")) {
65+
port->disc_addr.adrfam = NVMF_ADDR_FAMILY_FC;
6266
} else {
6367
pr_err("Invalid value '%s' for adrfam\n", page);
6468
return -EINVAL;
@@ -209,6 +213,8 @@ static ssize_t nvmet_addr_trtype_show(struct config_item *item,
209213
return sprintf(page, "rdma\n");
210214
case NVMF_TRTYPE_LOOP:
211215
return sprintf(page, "loop\n");
216+
case NVMF_TRTYPE_FC:
217+
return sprintf(page, "fc\n");
212218
default:
213219
return sprintf(page, "\n");
214220
}
@@ -229,6 +235,12 @@ static void nvmet_port_init_tsas_loop(struct nvmet_port *port)
229235
memset(&port->disc_addr.tsas, 0, NVMF_TSAS_SIZE);
230236
}
231237

238+
static void nvmet_port_init_tsas_fc(struct nvmet_port *port)
239+
{
240+
port->disc_addr.trtype = NVMF_TRTYPE_FC;
241+
memset(&port->disc_addr.tsas, 0, NVMF_TSAS_SIZE);
242+
}
243+
232244
static ssize_t nvmet_addr_trtype_store(struct config_item *item,
233245
const char *page, size_t count)
234246
{
@@ -244,6 +256,8 @@ static ssize_t nvmet_addr_trtype_store(struct config_item *item,
244256
nvmet_port_init_tsas_rdma(port);
245257
} else if (sysfs_streq(page, "loop")) {
246258
nvmet_port_init_tsas_loop(port);
259+
} else if (sysfs_streq(page, "fc")) {
260+
nvmet_port_init_tsas_fc(port);
247261
} else {
248262
pr_err("Invalid value '%s' for trtype\n", page);
249263
return -EINVAL;

0 commit comments

Comments
 (0)