• Jan Höppner's avatar
    s390/dasd: Fix inconsistent kobject removal · ac55ad2b
    Jan Höppner authored
    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: 19508b20 ("s390/dasd: Display FC Endpoint Security information via sysfs")
    Reported-by: default avatarStefan Haberland <sth@linux.ibm.com>
    Signed-off-by: default avatarJan Höppner <hoeppner@linux.ibm.com>
    Reviewed-by: default avatarStefan Haberland <sth@linux.ibm.com>
    Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    ac55ad2b
dasd_devmap.c 45.9 KB