• Xin Long's avatar
    sctp: fix some rhashtable functions using in sctp proc/diag · 53fa1036
    Xin Long authored
    When rhashtable_walk_init return err, no release function should be
    called, and when rhashtable_walk_start return err, we should only invoke
    rhashtable_walk_exit to release the source.
    
    But now when sctp_transport_walk_start return err, we just call
    rhashtable_walk_stop/exit, and never care about if rhashtable_walk_init
    or start return err, which is so bad.
    
    We will fix it by calling rhashtable_walk_exit if rhashtable_walk_start
    return err in sctp_transport_walk_start, and if sctp_transport_walk_start
    return err, we do not need to call sctp_transport_walk_stop any more.
    
    For sctp proc, we will use 'iter->start_fail' to decide if we will call
    rhashtable_walk_stop/exit.
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    53fa1036
proc.c 13.8 KB