• C
    RDS: Use a generation counter to avoid rds_send_xmit loop · 9e29db0e
    Chris Mason 提交于
    rds_send_xmit is required to loop around after it releases the lock
    because someone else could done a trylock, found someone working on the
    list and backed off.
    
    But, once we drop our lock, it is possible that someone else does come
    in and make progress on the list.  We should detect this and not loop
    around if another process is actually working on the list.
    
    This patch adds a generation counter that is bumped every time we
    get the lock and do some send work.  If the retry notices someone else
    has bumped the generation counter, it does not need to loop around and
    continue working.
    Signed-off-by: NChris Mason <chris.mason@oracle.com>
    Signed-off-by: NAndy Grover <andy.grover@oracle.com>
    9e29db0e
rds.h 25.2 KB