On Mon, 18 Jan 2021 17:55:18 +0100 Stefan Haberland <sth@xxxxxxxxxxxxx> wrote: > From: Jan Höppner <hoeppner@xxxxxxxxxxxxx> > > Our intention was to only remove path kobjects whenever a device is > being set offline. However, one corner case was missing. > > If a device is disabled and enabled (using the IOCTLs BIODASDDISABLE and > BIODASDENABLE respectively), the enabling process will call > dasd_eckd_reload_device() which itself calls dasd_eckd_read_conf() in > order to update path information. During that update, > dasd_eckd_clear_conf_data() clears all old data and also removes all > kobjects. This will leave us with an inconsistent state of path kobjects > and a subsequent path verification leads to a failing kobject creation. > > Fix this by removing kobjects only in the context of offlining a device > as initially intended. > > Fixes: 19508b204740 ("s390/dasd: Display FC Endpoint Security information via sysfs") > Reported-by: Stefan Haberland <sth@xxxxxxxxxxxxx> > Signed-off-by: Jan Höppner <hoeppner@xxxxxxxxxxxxx> > Reviewed-by: Stefan Haberland <sth@xxxxxxxxxxxxx> > --- > drivers/s390/block/dasd_devmap.c | 20 ++++++++++++++------ > drivers/s390/block/dasd_eckd.c | 3 ++- > drivers/s390/block/dasd_int.h | 2 +- > 3 files changed, 17 insertions(+), 8 deletions(-) Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>