Commit daa991bf authored by Stefan Haberland's avatar Stefan Haberland Committed by Martin Schwidefsky

dasd: use aliases for formatted devices during format

Formatting of a previously formatted device is slower than newly
format a device when alias devices are available.
For already formatted devices the alias devices are not used for
formatting.

Fix the alias handling for already formatted devices.
Signed-off-by: default avatarStefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 896cb7e6
...@@ -285,6 +285,12 @@ static int dasd_state_basic_to_known(struct dasd_device *device) ...@@ -285,6 +285,12 @@ static int dasd_state_basic_to_known(struct dasd_device *device)
{ {
int rc; int rc;
if (device->discipline->basic_to_known) {
rc = device->discipline->basic_to_known(device);
if (rc)
return rc;
}
if (device->block) { if (device->block) {
dasd_profile_exit(&device->block->profile); dasd_profile_exit(&device->block->profile);
debugfs_remove(device->block->debugfs_dentry); debugfs_remove(device->block->debugfs_dentry);
...@@ -375,11 +381,6 @@ static int dasd_state_ready_to_basic(struct dasd_device *device) ...@@ -375,11 +381,6 @@ static int dasd_state_ready_to_basic(struct dasd_device *device)
{ {
int rc; int rc;
if (device->discipline->ready_to_basic) {
rc = device->discipline->ready_to_basic(device);
if (rc)
return rc;
}
device->state = DASD_STATE_BASIC; device->state = DASD_STATE_BASIC;
if (device->block) { if (device->block) {
struct dasd_block *block = device->block; struct dasd_block *block = device->block;
......
...@@ -2039,7 +2039,7 @@ static int dasd_eckd_online_to_ready(struct dasd_device *device) ...@@ -2039,7 +2039,7 @@ static int dasd_eckd_online_to_ready(struct dasd_device *device)
return 0; return 0;
}; };
static int dasd_eckd_ready_to_basic(struct dasd_device *device) static int dasd_eckd_basic_to_known(struct dasd_device *device)
{ {
return dasd_alias_remove_device(device); return dasd_alias_remove_device(device);
}; };
...@@ -4511,7 +4511,7 @@ static struct dasd_discipline dasd_eckd_discipline = { ...@@ -4511,7 +4511,7 @@ static struct dasd_discipline dasd_eckd_discipline = {
.verify_path = dasd_eckd_verify_path, .verify_path = dasd_eckd_verify_path,
.basic_to_ready = dasd_eckd_basic_to_ready, .basic_to_ready = dasd_eckd_basic_to_ready,
.online_to_ready = dasd_eckd_online_to_ready, .online_to_ready = dasd_eckd_online_to_ready,
.ready_to_basic = dasd_eckd_ready_to_basic, .basic_to_known = dasd_eckd_basic_to_known,
.fill_geometry = dasd_eckd_fill_geometry, .fill_geometry = dasd_eckd_fill_geometry,
.start_IO = dasd_start_IO, .start_IO = dasd_start_IO,
.term_IO = dasd_term_IO, .term_IO = dasd_term_IO,
......
...@@ -304,7 +304,7 @@ struct dasd_discipline { ...@@ -304,7 +304,7 @@ struct dasd_discipline {
*/ */
int (*basic_to_ready) (struct dasd_device *); int (*basic_to_ready) (struct dasd_device *);
int (*online_to_ready) (struct dasd_device *); int (*online_to_ready) (struct dasd_device *);
int (*ready_to_basic) (struct dasd_device *); int (*basic_to_known)(struct dasd_device *);
/* (struct dasd_device *); /* (struct dasd_device *);
* Device operation functions. build_cp creates a ccw chain for * Device operation functions. build_cp creates a ccw chain for
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment