}
 CONFIGFS_ATTR(tcmu_, cmd_time_out);
 
+static ssize_t tcmu_dev_path_show(struct config_item *item, char *page)
+{
+       struct se_dev_attrib *da = container_of(to_config_group(item),
+                                               struct se_dev_attrib, da_group);
+       struct tcmu_dev *udev = TCMU_DEV(da->da_dev);
+
+       return snprintf(page, PAGE_SIZE, "%s\n", udev->dev_config);
+}
+
+static ssize_t tcmu_dev_path_store(struct config_item *item, const char *page,
+                                  size_t count)
+{
+       struct se_dev_attrib *da = container_of(to_config_group(item),
+                                               struct se_dev_attrib, da_group);
+       struct tcmu_dev *udev = TCMU_DEV(da->da_dev);
+       char *copy = NULL;
+       int ret;
+
+       copy = kstrdup(page, GFP_KERNEL);
+       if (!copy) {
+               kfree(copy);
+               return -EINVAL;
+       }
+       strlcpy(udev->dev_config, copy, TCMU_CONFIG_LEN);
+
+       /* Check if device has been configured before */
+       if (tcmu_dev_configured(udev)) {
+               ret = tcmu_netlink_event(TCMU_CMD_RECONFIG_DEVICE,
+                                        udev->uio_info.name,
+                                        udev->uio_info.uio_dev->minor);
+               if (ret) {
+                       pr_err("Unable to reconfigure device\n");
+                       return ret;
+               }
+       }
+
+       return count;
+}
+CONFIGFS_ATTR(tcmu_, dev_path);
+
 static ssize_t tcmu_dev_size_show(struct config_item *item, char *page)
 {
        struct se_dev_attrib *da = container_of(to_config_group(item),
 
 struct configfs_attribute *tcmu_attrib_attrs[] = {
        &tcmu_attr_cmd_time_out,
+       &tcmu_attr_dev_path,
        &tcmu_attr_dev_size,
        &tcmu_attr_emulate_write_cache,
        NULL,