| Function report | 
| Source Code: include\linux\rhashtable.h | Create Date:2022-07-28 06:07:13 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:Internal function, please use rhashtable_insert_fast() instead. This* function returns the existing element already in hashes in there is a clash,* otherwise it returns an error via ERR_PTR().
Proto:static inline void *__rhashtable_insert_fast(struct rhashtable *ht, const void *key, struct rhash_head *obj, const struct rhashtable_params params, bool rhlist)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct rhashtable * | ht | |
| const void * | key | |
| struct rhash_head * | obj | |
| const struct rhashtable_params | params | |
| bool | rhlist | 
| 722 | tbl = rht_dereference_rcu(tbl, ht) | 
| 724 | elasticity = Maximum chain length before rehash* The maximum (not average) chain length grows with the size of the hash* table, at a rate of (log N)/(log log N) | 
| 725 | bkt = rht_bucket_insert(ht, tbl, hash) | 
| 729 | pprev = NULL | 
| 733 | slow_path : | 
| 734 | rht_unlock(tbl, bkt) | 
| 736 | Return rhashtable_insert_slow(ht, key, obj) | 
| 743 | elasticity-- | 
| 754 | If Not rhlist Then Go to out_unlock | 
| 762 | head = rht_dereference_bucket(next, tbl, hash) | 
| 764 | If pprev Then | 
| 766 | rht_unlock(tbl, bkt) | 
| 767 | Else rht_assign_unlock(tbl, bkt, obj) | 
| 769 | data = NULL | 
| 770 | Go to out | 
| 773 | If elasticity <= 0 Then Go to slow_path | 
| 777 | If Value for the false possibility is greater at compile time(ht_grow_above_max - returns true if table is above maximum*@ht: hash table*@tbl: current table) Then Go to out_unlock | 
| 780 | If Value for the false possibility is greater at compile time(ht_grow_above_100 - returns true if nelems > table-size*@ht: hash table*@tbl: current table) Then Go to slow_path | 
| 787 | If rhlist Then | 
| 794 | atomic_inc( & nelems) | 
| 795 | rht_assign_unlock(tbl, bkt, obj) | 
| 800 | data = NULL | 
| 801 | out : | 
| 804 | Return data | 
| 806 | out_unlock : | 
| 807 | rht_unlock(tbl, bkt) | 
| 808 | Go to out | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |