drbd: don't implicitly resize Diskless node beyond end of device
authorLars Ellenberg <lars.ellenberg@linbit.com>
Tue, 18 Mar 2014 11:22:14 +0000 (12:22 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Jul 2014 16:34:59 +0000 (18:34 +0200)
commit6a8d68b1878e8839b4927150da236c8248703c70
tree6bc5108111b8f695755f979dea7d7f7899a2d532
parenta5655dac75b6c572e1ef430b61ad55245fffd523
drbd: don't implicitly resize Diskless node beyond end of device

During handshake, we compare backend sizes, and user set limits,
and agree on what device size we are going to expose.

We remember that last-agreed-size in our meta data.

But if we come up diskless, we have to accept what the peer
presents us with. We used to accept the peers maximum potential
capacity (backend size), which is wrong, and could lead to IO errors
due to access beyond end of device.

Instead, we need to accept the peer's current size.
Unless that is communicated as 0, in which case we
accept the backend size, or the user set limit, if set.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_receiver.c