summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-08-19 14:40:25 -0700
committerDavid S. Miller <davem@davemloft.net>2016-08-19 14:40:25 -0700
commita68d53988bc7f54aa383ecb308e7684c787af67c (patch)
tree2a64a15410e84838e189a8324e0a0b3ae6f5bda9 /include/linux
parent363dc396a5030ca82aa3e1a55b7d72965f968849 (diff)
parentad202074320cd75b31b8cdb58cca0d4ef6aaea8a (diff)
Merge branch 'rhash-raw-walkers-remove-part-1'
Herbert Xu says: ==================== rhashtable: Get rid of raw table walkers part 1 This series starts the process of getting rid of all raw rhashtable walkers (e.g., using any of the rht_for_each helpers) from the kernel. We need to do this before I can fix the resize kmalloc failure issue by using multi-layered tables. We should do this anyway because almost all raw table walkers are already buggy in that they don't handle multiple rhashtables during a resize. ==================== Dave/Tomas, please keep an eye out for any new patches that try to introduce raw table walkers and nack them. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/rhashtable.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/include/linux/rhashtable.h b/include/linux/rhashtable.h
index 3eef0802a0cd..8b72ee710f95 100644
--- a/include/linux/rhashtable.h
+++ b/include/linux/rhashtable.h
@@ -173,7 +173,7 @@ struct rhashtable_walker {
struct rhashtable_iter {
struct rhashtable *ht;
struct rhash_head *p;
- struct rhashtable_walker *walker;
+ struct rhashtable_walker walker;
unsigned int slot;
unsigned int skip;
};
@@ -346,8 +346,8 @@ struct bucket_table *rhashtable_insert_slow(struct rhashtable *ht,
struct bucket_table *old_tbl);
int rhashtable_insert_rehash(struct rhashtable *ht, struct bucket_table *tbl);
-int rhashtable_walk_init(struct rhashtable *ht, struct rhashtable_iter *iter,
- gfp_t gfp);
+void rhashtable_walk_enter(struct rhashtable *ht,
+ struct rhashtable_iter *iter);
void rhashtable_walk_exit(struct rhashtable_iter *iter);
int rhashtable_walk_start(struct rhashtable_iter *iter) __acquires(RCU);
void *rhashtable_walk_next(struct rhashtable_iter *iter);
@@ -906,4 +906,12 @@ static inline int rhashtable_replace_fast(
return err;
}
+/* Obsolete function, do not use in new code. */
+static inline int rhashtable_walk_init(struct rhashtable *ht,
+ struct rhashtable_iter *iter, gfp_t gfp)
+{
+ rhashtable_walk_enter(ht, iter);
+ return 0;
+}
+
#endif /* _LINUX_RHASHTABLE_H */