• Shyam Prasad N's avatar
    cifs: failure to add channel on iface should bump up weight · 6aac002b
    Shyam Prasad N authored
    After the interface selection policy change to do a weighted
    round robin, each iface maintains a weight_fulfilled. When the
    weight_fulfilled reaches the total weight for the iface, we know
    that the weights can be reset and ifaces can be allocated from
    scratch again.
    
    During channel allocation failures on a particular channel,
    weight_fulfilled is not incremented. If a few interfaces are
    inactive, we could end up in a situation where the active
    interfaces are all allocated for the total_weight, and inactive
    ones are all that remain. This can cause a situation where
    no more channels can be allocated further.
    
    This change fixes it by increasing weight_fulfilled, even when
    channel allocation failure happens. This could mean that if
    there are temporary failures in channel allocation, the iface
    weights may not strictly be adhered to. But that's still okay.
    
    Fixes: a6d8fb54 ("cifs: distribute channels across interfaces based on speed")
    Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    6aac002b
sess.c 53.2 KB