]> git.baikalelectronics.ru Git - kernel.git/commit
drbd: validate resync_after dependency on attach already
authorLars Ellenberg <lars.ellenberg@linbit.com>
Wed, 27 Mar 2013 13:08:43 +0000 (14:08 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 28 Mar 2013 16:10:25 +0000 (10:10 -0600)
commit55b583c4466cbd7a3b816a0962bcb2283c785a9f
tree76bdcd59708d7441ce7fbc3906d030e34349093e
parentc8d0ddcda2e698fda8bcc5d4076d51a0467e2f8a
drbd: validate resync_after dependency on attach already

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: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/drbd/drbd_nl.c
drivers/block/drbd/drbd_worker.c