mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
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: Stefan Haberland <stefan.haberland@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
896cb7e635
commit
daa991bf30
@ -285,6 +285,12 @@ static int dasd_state_basic_to_known(struct dasd_device *device)
|
||||
{
|
||||
int rc;
|
||||
|
||||
if (device->discipline->basic_to_known) {
|
||||
rc = device->discipline->basic_to_known(device);
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
if (device->block) {
|
||||
dasd_profile_exit(&device->block->profile);
|
||||
debugfs_remove(device->block->debugfs_dentry);
|
||||
@ -375,11 +381,6 @@ static int dasd_state_ready_to_basic(struct dasd_device *device)
|
||||
{
|
||||
int rc;
|
||||
|
||||
if (device->discipline->ready_to_basic) {
|
||||
rc = device->discipline->ready_to_basic(device);
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
device->state = DASD_STATE_BASIC;
|
||||
if (device->block) {
|
||||
struct dasd_block *block = device->block;
|
||||
|
@ -2039,7 +2039,7 @@ static int dasd_eckd_online_to_ready(struct dasd_device *device)
|
||||
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);
|
||||
};
|
||||
@ -4511,7 +4511,7 @@ static struct dasd_discipline dasd_eckd_discipline = {
|
||||
.verify_path = dasd_eckd_verify_path,
|
||||
.basic_to_ready = dasd_eckd_basic_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,
|
||||
.start_IO = dasd_start_IO,
|
||||
.term_IO = dasd_term_IO,
|
||||
|
@ -304,7 +304,7 @@ struct dasd_discipline {
|
||||
*/
|
||||
int (*basic_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 *);
|
||||
* Device operation functions. build_cp creates a ccw chain for
|
||||
|
Loading…
Reference in New Issue
Block a user