aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/target_core_rd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/target/target_core_rd.c')
-rw-r--r--drivers/target/target_core_rd.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c
index 20253d04103f..a6e8106abd6f 100644
--- a/drivers/target/target_core_rd.c
+++ b/drivers/target/target_core_rd.c
@@ -339,10 +339,14 @@ static void rd_dev_call_rcu(struct rcu_head *p)
339 339
340static void rd_free_device(struct se_device *dev) 340static void rd_free_device(struct se_device *dev)
341{ 341{
342 call_rcu(&dev->rcu_head, rd_dev_call_rcu);
343}
344
345static void rd_destroy_device(struct se_device *dev)
346{
342 struct rd_dev *rd_dev = RD_DEV(dev); 347 struct rd_dev *rd_dev = RD_DEV(dev);
343 348
344 rd_release_device_space(rd_dev); 349 rd_release_device_space(rd_dev);
345 call_rcu(&dev->rcu_head, rd_dev_call_rcu);
346} 350}
347 351
348static struct rd_dev_sg_table *rd_get_sg_table(struct rd_dev *rd_dev, u32 page) 352static struct rd_dev_sg_table *rd_get_sg_table(struct rd_dev *rd_dev, u32 page)
@@ -554,7 +558,7 @@ static ssize_t rd_set_configfs_dev_params(struct se_device *dev,
554 struct rd_dev *rd_dev = RD_DEV(dev); 558 struct rd_dev *rd_dev = RD_DEV(dev);
555 char *orig, *ptr, *opts; 559 char *orig, *ptr, *opts;
556 substring_t args[MAX_OPT_ARGS]; 560 substring_t args[MAX_OPT_ARGS];
557 int ret = 0, arg, token; 561 int arg, token;
558 562
559 opts = kstrdup(page, GFP_KERNEL); 563 opts = kstrdup(page, GFP_KERNEL);
560 if (!opts) 564 if (!opts)
@@ -589,7 +593,7 @@ static ssize_t rd_set_configfs_dev_params(struct se_device *dev,
589 } 593 }
590 594
591 kfree(orig); 595 kfree(orig);
592 return (!ret) ? count : ret; 596 return count;
593} 597}
594 598
595static ssize_t rd_show_configfs_dev_params(struct se_device *dev, char *b) 599static ssize_t rd_show_configfs_dev_params(struct se_device *dev, char *b)
@@ -651,6 +655,7 @@ static const struct target_backend_ops rd_mcp_ops = {
651 .detach_hba = rd_detach_hba, 655 .detach_hba = rd_detach_hba,
652 .alloc_device = rd_alloc_device, 656 .alloc_device = rd_alloc_device,
653 .configure_device = rd_configure_device, 657 .configure_device = rd_configure_device,
658 .destroy_device = rd_destroy_device,
654 .free_device = rd_free_device, 659 .free_device = rd_free_device,
655 .parse_cdb = rd_parse_cdb, 660 .parse_cdb = rd_parse_cdb,
656 .set_configfs_dev_params = rd_set_configfs_dev_params, 661 .set_configfs_dev_params = rd_set_configfs_dev_params,