diff options
Diffstat (limited to 'drivers/s390/block')
-rw-r--r-- | drivers/s390/block/dcssblk.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c index ebf41e228e55..ee0e85abe1fd 100644 --- a/drivers/s390/block/dcssblk.c +++ b/drivers/s390/block/dcssblk.c | |||
@@ -304,12 +304,6 @@ dcssblk_load_segment(char *name, struct segment_info **seg_info) | |||
304 | return rc; | 304 | return rc; |
305 | } | 305 | } |
306 | 306 | ||
307 | static void dcssblk_unregister_callback(struct device *dev) | ||
308 | { | ||
309 | device_unregister(dev); | ||
310 | put_device(dev); | ||
311 | } | ||
312 | |||
313 | /* | 307 | /* |
314 | * device attribute for switching shared/nonshared (exclusive) | 308 | * device attribute for switching shared/nonshared (exclusive) |
315 | * operation (show + store) | 309 | * operation (show + store) |
@@ -397,7 +391,13 @@ removeseg: | |||
397 | blk_cleanup_queue(dev_info->dcssblk_queue); | 391 | blk_cleanup_queue(dev_info->dcssblk_queue); |
398 | dev_info->gd->queue = NULL; | 392 | dev_info->gd->queue = NULL; |
399 | put_disk(dev_info->gd); | 393 | put_disk(dev_info->gd); |
400 | rc = device_schedule_callback(dev, dcssblk_unregister_callback); | 394 | up_write(&dcssblk_devices_sem); |
395 | |||
396 | if (device_remove_file_self(dev, attr)) { | ||
397 | device_unregister(dev); | ||
398 | put_device(dev); | ||
399 | } | ||
400 | return rc; | ||
401 | out: | 401 | out: |
402 | up_write(&dcssblk_devices_sem); | 402 | up_write(&dcssblk_devices_sem); |
403 | return rc; | 403 | return rc; |