History

tcmu: Add Type of reconfig into netlink

This patch adds more info about the attribute being changed, so that usersapce can easily figure out what is happening.

Bryant G. Ly committed 9 years ago

Commit 8a458851 parent ee018252 files · +22 −6Browse files

Unified · Split

2 files
  1. drivers/target/target_core_user.c +14 −6
  2. include/uapi/linux/target_core_user.h +8 −0
drivers/target/target_core_user.c+14−6
@@ -1176,7 +1176,8 @@ static int tcmu_release(struct uio_info *info, struct inode *inode) · 1175 unmodified lines
11761176 return 0;
11771177 }
11781178
1179−static int tcmu_netlink_event(enum tcmu_genl_cmd cmd, const char *name, int minor)
1179+static int tcmu_netlink_event(enum tcmu_genl_cmd cmd, const char *name,
1180+ int minor, int type)
11801181 {
11811182 struct sk_buff *skb;
11821183 void *msg_header;
@@ -1198,6 +1199,10 @@ static int tcmu_netlink_event(enum tcmu_genl_cmd cmd, const char *name, int mino · 15 unmodified lines
11981199 if (ret < 0)
11991200 goto free_skb;
12001201
1202+ ret = nla_put_u32(skb, TCMU_ATTR_TYPE, type);
1203+ if (ret < 0)
1204+ goto free_skb;
1205+
12011206 genlmsg_end(skb, msg_header);
12021207
12031208 ret = genlmsg_multicast_allns(&tcmu_genl_family, skb, 0,
@@ -1301,7 +1306,7 @@ static int tcmu_configure_device(struct se_device *dev) · 97 unmodified lines
13011306 kref_get(&udev->kref);
13021307
13031308 ret = tcmu_netlink_event(TCMU_CMD_ADDED_DEVICE, udev->uio_info.name,
1304− udev->uio_info.uio_dev->minor);
1309+ udev->uio_info.uio_dev->minor, NO_RECONFIG);
13051310 if (ret)
13061311 goto err_netlink;
13071312
@@ -1383,7 +1388,7 @@ static void tcmu_free_device(struct se_device *dev) · 75 unmodified lines
13831388
13841389 if (tcmu_dev_configured(udev)) {
13851390 tcmu_netlink_event(TCMU_CMD_REMOVED_DEVICE, udev->uio_info.name,
1386− udev->uio_info.uio_dev->minor);
1391+ udev->uio_info.uio_dev->minor, NO_RECONFIG);
13871392
13881393 uio_unregister_device(&udev->uio_info);
13891394 }
@@ -1577,7 +1582,8 @@ static ssize_t tcmu_dev_path_store(struct config_item *item, const char *page, · 187 unmodified lines
15771582 if (tcmu_dev_configured(udev)) {
15781583 ret = tcmu_netlink_event(TCMU_CMD_RECONFIG_DEVICE,
15791584 udev->uio_info.name,
1580− udev->uio_info.uio_dev->minor);
1585+ udev->uio_info.uio_dev->minor,
1586+ CONFIG_PATH);
15811587 if (ret) {
15821588 pr_err("Unable to reconfigure device\n");
15831589 return ret;
@@ -1615,7 +1621,8 @@ static ssize_t tcmu_dev_size_store(struct config_item *item, const char *page, · 31 unmodified lines
16151621 if (tcmu_dev_configured(udev)) {
16161622 ret = tcmu_netlink_event(TCMU_CMD_RECONFIG_DEVICE,
16171623 udev->uio_info.name,
1618− udev->uio_info.uio_dev->minor);
1624+ udev->uio_info.uio_dev->minor,
1625+ CONFIG_SIZE);
16191626 if (ret) {
16201627 pr_err("Unable to reconfigure device\n");
16211628 return ret;
@@ -1654,7 +1661,8 @@ static ssize_t tcmu_emulate_write_cache_store(struct config_item *item, · 32 unmodified lines
16541661 if (tcmu_dev_configured(udev)) {
16551662 ret = tcmu_netlink_event(TCMU_CMD_RECONFIG_DEVICE,
16561663 udev->uio_info.name,
1657− udev->uio_info.uio_dev->minor);
1664+ udev->uio_info.uio_dev->minor,
1665+ CONFIG_WRITECACHE);
16581666 if (ret) {
16591667 pr_err("Unable to reconfigure device\n");
16601668 return ret;
include/uapi/linux/target_core_user.h+8−0
@@ -139,8 +139,16 @@ enum tcmu_genl_attr { · 138 unmodified lines
139139 TCMU_ATTR_UNSPEC,
140140 TCMU_ATTR_DEVICE,
141141 TCMU_ATTR_MINOR,
142+ TCMU_ATTR_TYPE,
142143 __TCMU_ATTR_MAX,
143144 };
144145 #define TCMU_ATTR_MAX (__TCMU_ATTR_MAX - 1)
145146
147+enum tcmu_reconfig_types {
148+ NO_RECONFIG,
149+ CONFIG_PATH,
150+ CONFIG_SIZE,
151+ CONFIG_WRITECACHE,
152+};
153+
146154 #endif