• Lars Ellenberg's avatar
    drbd: validate resync_after dependency on attach already · a3f8f7dc
    Lars Ellenberg authored
    We validated resync_after dependencies, if changed via disk-options.
    But we did not validate them when first created via attach.
    We also did not check or cleanup dependencies that used to be correct,
    but now point to meanwhile removed minor devices.
    
    If the drbd_resync_after_valid() validation in disk-options tried to
    follow a dependency chain in this way, this could lead to NULL pointer
    dereference.
    
    Validate resync_after settings in drbd_adm_attach() already, as well as
    in drbd_adm_disk_opts(), and and only reject dependency loops.
    Depending on non-existing disks is allowed and equivalent to no dependency.
    Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
    Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    a3f8f7dc
drbd_nl.c 92.3 KB