|
@@ -461,6 +461,14 @@ static inline struct radix_tree_node *entry_to_node(void *ptr)
|
|
*
|
|
*
|
|
* This function updates @iter->index in the case of a successful lookup.
|
|
* This function updates @iter->index in the case of a successful lookup.
|
|
* For tagged lookup it also eats @iter->tags.
|
|
* For tagged lookup it also eats @iter->tags.
|
|
|
|
+ *
|
|
|
|
+ * There are several cases where 'slot' can be passed in as NULL to this
|
|
|
|
+ * function. These cases result from the use of radix_tree_iter_next() or
|
|
|
|
+ * radix_tree_iter_retry(). In these cases we don't end up dereferencing
|
|
|
|
+ * 'slot' because either:
|
|
|
|
+ * a) we are doing tagged iteration and iter->tags has been set to 0, or
|
|
|
|
+ * b) we are doing non-tagged iteration, and iter->index and iter->next_index
|
|
|
|
+ * have been set up so that radix_tree_chunk_size() returns 1 or 0.
|
|
*/
|
|
*/
|
|
static __always_inline void **
|
|
static __always_inline void **
|
|
radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags)
|
|
radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags)
|