s390/dasd: fix disconnected device with valid path mask
Path verification is either done via dasd_eckd_read_conf() which is triggered during online processing and resume or via do_path_verification_work() which is triggered after path events. The dasd_eckd_read_conf() version added paths unconditionally and did not check if the path mask was empty. This led to devices having the disconnected stop flag set but a valid path mask. So they where not working although they had paths validated successfully. After a resume this state could even not be solved with additional paths added. Fix by checking for an empty path mask in dasd_eckd_read_conf() and clearing the device stop bits for a newly added channel path. Reviewed-by: Sebastian Ott <sebott@linux.vnet.ibm.com> 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
251afd69e3
commit
ccc0e7dc70
1 changed files with 6 additions and 1 deletions
|
@ -1171,7 +1171,12 @@ static int dasd_eckd_read_conf(struct dasd_device *device)
|
|||
path_data->ppm |= lpm;
|
||||
break;
|
||||
}
|
||||
path_data->opm |= lpm;
|
||||
if (!path_data->opm) {
|
||||
path_data->opm = lpm;
|
||||
dasd_generic_path_operational(device);
|
||||
} else {
|
||||
path_data->opm |= lpm;
|
||||
}
|
||||
/*
|
||||
* if the path is used
|
||||
* it should not be in one of the negative lists
|
||||
|
|
Loading…
Add table
Reference in a new issue