]> www.infradead.org Git - users/willy/xarray.git/commitdiff
radix tree: Remove radix_tree_{insert,replace}_slot
authorMatthew Wilcox <willy@infradead.org>
Mon, 29 Oct 2018 16:10:21 +0000 (12:10 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 9 Aug 2019 01:38:13 +0000 (21:38 -0400)
Now unused.  Also radix_tree_deref_slot, radix_tree_deref_slot_protected,
radix_tree_deref_retry and radix_tree_exception.

Signed-off-by: Matthew Wilcox <willy@infradead.org>
include/linux/radix-tree.h
lib/radix-tree.c

index 074916d743c44d28d4a8065c1ad483519521de6a..e642b6ad4f12ad5659d47df1e47b9249929f6956 100644 (file)
@@ -127,7 +127,6 @@ struct radix_tree_iter {
  * The notable exceptions to this rule are the following functions:
  * __radix_tree_lookup
  * radix_tree_lookup
- * radix_tree_lookup_slot
  * radix_tree_tag_get
  * radix_tree_tagged
  *
@@ -155,74 +154,15 @@ struct radix_tree_iter {
  * radix_tree_tagged is able to be called without locking or RCU.
  */
 
-/**
- * radix_tree_deref_slot - dereference a slot
- * @slot: slot pointer, returned by radix_tree_lookup_slot
- *
- * For use with radix_tree_lookup_slot().  Caller must hold tree at least read
- * locked across slot lookup and dereference. Not required if write lock is
- * held (ie. items cannot be concurrently inserted).
- *
- * radix_tree_deref_retry must be used to confirm validity of the pointer if
- * only the read lock is held.
- *
- * Return: entry stored in that slot.
- */
-static inline void *radix_tree_deref_slot(void __rcu **slot)
-{
-       return rcu_dereference(*slot);
-}
-
-/**
- * radix_tree_deref_slot_protected - dereference a slot with tree lock held
- * @slot: slot pointer, returned by radix_tree_lookup_slot
- *
- * Similar to radix_tree_deref_slot.  The caller does not hold the RCU read
- * lock but it must hold the tree lock to prevent parallel updates.
- *
- * Return: entry stored in that slot.
- */
-static inline void *radix_tree_deref_slot_protected(void __rcu **slot,
-                                                       spinlock_t *treelock)
-{
-       return rcu_dereference_protected(*slot, lockdep_is_held(treelock));
-}
-
-/**
- * radix_tree_deref_retry      - check radix_tree_deref_slot
- * @arg:       pointer returned by radix_tree_deref_slot
- * Returns:    0 if retry is not required, otherwise retry is required
- *
- * radix_tree_deref_retry must be used with radix_tree_deref_slot.
- */
-static inline int radix_tree_deref_retry(void *arg)
-{
-       return unlikely(radix_tree_is_internal_node(arg));
-}
-
-/**
- * radix_tree_exception        - radix_tree_deref_slot returned either exception?
- * @arg:       value returned by radix_tree_deref_slot
- * Returns:    0 if well-aligned pointer, non-0 if either kind of exception.
- */
-static inline int radix_tree_exception(void *arg)
-{
-       return unlikely((unsigned long)arg & RADIX_TREE_ENTRY_MASK);
-}
-
 int radix_tree_insert(struct radix_tree_root *, unsigned long index,
                        void *);
 void *__radix_tree_lookup(const struct radix_tree_root *, unsigned long index,
                          struct radix_tree_node **nodep, void __rcu ***slotp);
 void *radix_tree_lookup(const struct radix_tree_root *, unsigned long);
-void __rcu **radix_tree_lookup_slot(const struct radix_tree_root *,
-                                       unsigned long index);
 void __radix_tree_replace(struct radix_tree_root *, struct radix_tree_node *,
                          void __rcu **slot, void *entry);
 void radix_tree_iter_replace(struct radix_tree_root *,
                const struct radix_tree_iter *, void __rcu **slot, void *entry);
-void radix_tree_replace_slot(struct radix_tree_root *,
-                            void __rcu **slot, void *entry);
 void radix_tree_iter_delete(struct radix_tree_root *,
                        struct radix_tree_iter *iter, void __rcu **slot);
 void *radix_tree_delete_item(struct radix_tree_root *, unsigned long, void *);
index 7f8f9fc8bf52150e4a91f17658519a99e7a1160e..5a7d5a715afeb062dc1505df95e35e8cc26654d0 100644 (file)
@@ -755,30 +755,6 @@ void *__radix_tree_lookup(const struct radix_tree_root *root,
        return node;
 }
 
-/**
- *     radix_tree_lookup_slot    -    lookup a slot in a radix tree
- *     @root:          radix tree root
- *     @index:         index key
- *
- *     Returns:  the slot corresponding to the position @index in the
- *     radix tree @root. This is useful for update-if-exists operations.
- *
- *     This function can be called under rcu_read_lock iff the slot is not
- *     modified by radix_tree_replace_slot, otherwise it must be called
- *     exclusive from other writers. Any dereference of the slot must be done
- *     using radix_tree_deref_slot.
- */
-void __rcu **radix_tree_lookup_slot(const struct radix_tree_root *root,
-                               unsigned long index)
-{
-       void __rcu **slot;
-
-       if (!__radix_tree_lookup(root, index, NULL, &slot))
-               return NULL;
-       return slot;
-}
-EXPORT_SYMBOL(radix_tree_lookup_slot);
-
 /**
  *     radix_tree_lookup    -    perform lookup operation on a radix tree
  *     @root:          radix tree root
@@ -872,28 +848,6 @@ void __radix_tree_replace(struct radix_tree_root *root,
        delete_node(root, node);
 }
 
-/**
- * radix_tree_replace_slot     - replace item in a slot
- * @root:      radix tree root
- * @slot:      pointer to slot
- * @item:      new item to store in the slot.
- *
- * For use with radix_tree_lookup_slot(). Caller must hold tree write locked
- * across slot lookup and replacement.
- *
- * NOTE: This cannot be used to switch between non-entries (empty slots),
- * regular entries, and value entries, as that requires accounting
- * inside the radix tree node. When switching from one type of entry or
- * deleting, use __radix_tree_lookup() and __radix_tree_replace() or
- * radix_tree_iter_replace().
- */
-void radix_tree_replace_slot(struct radix_tree_root *root,
-                            void __rcu **slot, void *item)
-{
-       __radix_tree_replace(root, NULL, slot, item);
-}
-EXPORT_SYMBOL(radix_tree_replace_slot);
-
 /**
  * radix_tree_iter_replace - replace item in a slot
  * @root:      radix tree root