• T
    nft_hash: Remove rhashtable_remove_pprev() · 897362e4
    Thomas Graf 提交于
    The removal function of nft_hash currently stores a reference to the
    previous element during lookup which is used to optimize removal later
    on. This was possible because a lock is held throughout calling
    rhashtable_lookup() and rhashtable_remove().
    
    With the introdution of deferred table resizing in parallel to lookups
    and insertions, the nftables lock will no longer synchronize all
    table mutations and the stored pprev may become invalid.
    
    Removing this optimization makes removal slightly more expensive on
    average but allows taking the resize cost out of the insert and
    remove path.
    Signed-off-by: NThomas Graf <tgraf@suug.ch>
    Cc: netfilter-devel@vger.kernel.org
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    897362e4
rhashtable.h 9.3 KB