summaryrefslogtreecommitdiffstats
path: root/drivers/block/rsxx/rsxx_priv.h
diff options
context:
space:
mode:
authorLars Ellenberg2013-10-23 10:59:19 +0200
committerJens Axboe2013-11-08 17:10:29 +0100
commit35f47ef1a1f069cd2f346314fb8212bb49571eac (patch)
tree78ff95a7c082c0a7a2d3d87bbdfea47773321f74 /drivers/block/rsxx/rsxx_priv.h
parentdrbd: fix decoding of bitmap vli rle for device sizes > 64 TB (diff)
downloadkernel-qcow2-linux-35f47ef1a1f069cd2f346314fb8212bb49571eac.tar.gz
kernel-qcow2-linux-35f47ef1a1f069cd2f346314fb8212bb49571eac.tar.xz
kernel-qcow2-linux-35f47ef1a1f069cd2f346314fb8212bb49571eac.zip
drbd: avoid to shrink max_bio_size due to peer re-configuration
For a long time, the receiving side has spread "too large" incoming requests over multiple bios. No need to shrink our max_bio_size (max_hw_sectors) if the peer is reconfigured to use a different storage. The problem manifests itself if we are not the top of the device stack (DRBD is used a LVM PV). A hardware reconfiguration on the peer may cause the supported max_bio_size to shrink, and the connection handshake would now unnecessarily shrink the max_bio_size on the active node. There is no way to notify upper layers that they have to "re-stack" their limits. So they won't notice at all, and may keep submitting bios that are suddenly considered "too large for device". We already check for compatibility and ignore changes on the peer, the code only was masked out unless we have a fully established connection. We just need to allow it a bit earlier during the handshake. Also consider max_hw_sectors in our merge bvec function, just in case. 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>
Diffstat (limited to 'drivers/block/rsxx/rsxx_priv.h')
0 files changed, 0 insertions, 0 deletions