aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/block/dasd.c
diff options
context:
space:
mode:
authorStefan Haberland <stefan.haberland@de.ibm.com>2011-10-30 10:17:09 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-10-30 10:16:45 -0400
commitc8d1c0ff840bbf06c60ff4235202a4b1457d8f59 (patch)
treeb183231aa76a1268141c68cf8566f9e07915800b /drivers/s390/block/dasd.c
parent6ffed94ea73c0c15e3201d4d479b6efe8343fb96 (diff)
[S390] dasd: prevent path verification before resume
Mark the device as suspended and delay execution of the path verification worker to prevent mix-up. Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/block/dasd.c')
-rw-r--r--drivers/s390/block/dasd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index ce2a780a9ea8..65894f05a801 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -3289,6 +3289,9 @@ int dasd_generic_pm_freeze(struct ccw_device *cdev)
3289 if (IS_ERR(device)) 3289 if (IS_ERR(device))
3290 return PTR_ERR(device); 3290 return PTR_ERR(device);
3291 3291
3292 /* mark device as suspended */
3293 set_bit(DASD_FLAG_SUSPENDED, &device->flags);
3294
3292 if (device->discipline->freeze) 3295 if (device->discipline->freeze)
3293 rc = device->discipline->freeze(device); 3296 rc = device->discipline->freeze(device);
3294 3297
@@ -3363,6 +3366,7 @@ int dasd_generic_restore_device(struct ccw_device *cdev)
3363 if (device->block) 3366 if (device->block)
3364 dasd_schedule_block_bh(device->block); 3367 dasd_schedule_block_bh(device->block);
3365 3368
3369 clear_bit(DASD_FLAG_SUSPENDED, &device->flags);
3366 dasd_put_device(device); 3370 dasd_put_device(device);
3367 return 0; 3371 return 0;
3368} 3372}