Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -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;
+2 −2
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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