• Pablo Neira Ayuso's avatar
    rhashtable: add rhashtable_lookup_get_insert_key() · 5ca8cc5b
    Pablo Neira Ayuso authored
    This patch modifies __rhashtable_insert_fast() so it returns the
    existing object that clashes with the one that you want to insert.
    In case the object is successfully inserted, NULL is returned.
    Otherwise, you get an error via ERR_PTR().
    
    This patch adapts the existing callers of __rhashtable_insert_fast()
    so they handle this new logic, and it adds a new
    rhashtable_lookup_get_insert_key() interface to fetch this existing
    object.
    
    nf_tables needs this change to improve handling of EEXIST cases via
    honoring the NLM_F_EXCL flag and by checking if the data part of the
    mapping matches what we have.
    
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Thomas Graf <tgraf@suug.ch>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    5ca8cc5b
rhashtable.c 20.7 KB