target/fcoe: Add tag support to tcm_fc
authorAndy Grover <agrover@redhat.com>
Tue, 22 Dec 2015 02:48:05 +0000 (18:48 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 7 Jan 2016 21:57:50 +0000 (13:57 -0800)
Add the 'tag' attribute to FC node ACLs. This is not used by kernel code,
but gives userspace a place to store a tag string. This is used to provide
support for initiator groups in targetcli.

Just copy iscsi's implementation for tcm_fc. A few other fabrics that
support acls also need this, to be submitted separately after the holidays.

Signed-off-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/tcm_fc/tfc_conf.c

index 85aeaa0ad303b9cff6e33234c2fe685b964ca53b..9cdb2acfd6261523f10a85b109d1d1642c783c74 100644 (file)
@@ -171,9 +171,31 @@ static ssize_t ft_nacl_node_name_store(struct config_item *item,
 CONFIGFS_ATTR(ft_nacl_, node_name);
 CONFIGFS_ATTR(ft_nacl_, port_name);
 
+static ssize_t ft_nacl_tag_show(struct config_item *item,
+               char *page)
+{
+       return snprintf(page, PAGE_SIZE, "%s", acl_to_nacl(item)->acl_tag);
+}
+
+static ssize_t ft_nacl_tag_store(struct config_item *item,
+               const char *page, size_t count)
+{
+       struct se_node_acl *se_nacl = acl_to_nacl(item);
+       int ret;
+
+       ret = core_tpg_set_initiator_node_tag(se_nacl->se_tpg, se_nacl, page);
+
+       if (ret < 0)
+               return ret;
+       return count;
+}
+
+CONFIGFS_ATTR(ft_nacl_, tag);
+
 static struct configfs_attribute *ft_nacl_base_attrs[] = {
        &ft_nacl_attr_port_name,
        &ft_nacl_attr_node_name,
+       &ft_nacl_attr_tag,
        NULL,
 };