• Philipp Reisner's avatar
    drbd: Fix an connection drop issue after enabling allow-two-primaries · b874d231
    Philipp Reisner authored
    Since drbd-8.4.0 it is possible to change the allow-two-primaries
    network option while the connection is established.
    
    The sequence code used to partially order packets from the
    data socket with packets from the meta-data socket, still assued
    that the allow-two-primaries option is constant while the
    connection is established.
    
    I.e.
    On a node that has the RESOLVE_CONFLICTS bits set, after enabling
    allow-two-primaries, when receiving the next data packet it timed out
    while waiting for the necessary packets on the data socket to arrive
    (wait_for_and_update_peer_seq() function).
    
    Fixed that by always tracking the sequence number, but only waiting
    for it if allow-two-primaries is set.
    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>
    b874d231
drbd_receiver.c 146 KB