|
@@ -756,15 +756,16 @@ dcssblk_remove_store(struct device *dev, struct device_attribute *attr, const ch
|
|
|
blk_cleanup_queue(dev_info->dcssblk_queue);
|
|
|
dev_info->gd->queue = NULL;
|
|
|
put_disk(dev_info->gd);
|
|
|
- device_unregister(&dev_info->dev);
|
|
|
|
|
|
/* unload all related segments */
|
|
|
list_for_each_entry(entry, &dev_info->seg_list, lh)
|
|
|
segment_unload(entry->segment_name);
|
|
|
|
|
|
- put_device(&dev_info->dev);
|
|
|
up_write(&dcssblk_devices_sem);
|
|
|
|
|
|
+ device_unregister(&dev_info->dev);
|
|
|
+ put_device(&dev_info->dev);
|
|
|
+
|
|
|
rc = count;
|
|
|
out_buf:
|
|
|
kfree(local_buf);
|