diff options
Diffstat (limited to 'drivers/s390/block/dasd.c')
-rw-r--r-- | drivers/s390/block/dasd.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index f16afe74464f..82d9ce36bd0b 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
@@ -2769,6 +2769,10 @@ int dasd_generic_pm_freeze(struct ccw_device *cdev) | |||
2769 | 2769 | ||
2770 | if (IS_ERR(device)) | 2770 | if (IS_ERR(device)) |
2771 | return PTR_ERR(device); | 2771 | return PTR_ERR(device); |
2772 | |||
2773 | if (device->discipline->freeze) | ||
2774 | rc = device->discipline->freeze(device); | ||
2775 | |||
2772 | /* disallow new I/O */ | 2776 | /* disallow new I/O */ |
2773 | dasd_device_set_stop_bits(device, DASD_STOPPED_PM); | 2777 | dasd_device_set_stop_bits(device, DASD_STOPPED_PM); |
2774 | /* clear active requests */ | 2778 | /* clear active requests */ |
@@ -2805,9 +2809,6 @@ int dasd_generic_pm_freeze(struct ccw_device *cdev) | |||
2805 | list_splice_tail(&freeze_queue, &device->ccw_queue); | 2809 | list_splice_tail(&freeze_queue, &device->ccw_queue); |
2806 | spin_unlock_irq(get_ccwdev_lock(cdev)); | 2810 | spin_unlock_irq(get_ccwdev_lock(cdev)); |
2807 | 2811 | ||
2808 | if (device->discipline->freeze) | ||
2809 | rc = device->discipline->freeze(device); | ||
2810 | |||
2811 | dasd_put_device(device); | 2812 | dasd_put_device(device); |
2812 | return rc; | 2813 | return rc; |
2813 | } | 2814 | } |