On 2024/1/30 09:36, Johannes Weiner wrote: > Move it up to the other tree and refcounting functions. > > Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> Reviewed-by: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx> > --- > mm/zswap.c | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index cf864aaa214d..9f05282efe3c 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -559,6 +559,18 @@ static void zswap_entry_put(struct zswap_entry *entry) > } > } > > +/* > + * If the entry is still valid in the tree, drop the initial ref and remove it > + * from the tree. This function must be called with an additional ref held, > + * otherwise it may race with another invalidation freeing the entry. > + */ > +static void zswap_invalidate_entry(struct zswap_tree *tree, > + struct zswap_entry *entry) > +{ > + if (zswap_rb_erase(&tree->rbroot, entry)) > + zswap_entry_put(entry); > +} > + > /********************************* > * shrinker functions > **********************************/ > @@ -809,18 +821,6 @@ static struct zswap_pool *zswap_pool_find_get(char *type, char *compressor) > return NULL; > } > > -/* > - * If the entry is still valid in the tree, drop the initial ref and remove it > - * from the tree. This function must be called with an additional ref held, > - * otherwise it may race with another invalidation freeing the entry. > - */ > -static void zswap_invalidate_entry(struct zswap_tree *tree, > - struct zswap_entry *entry) > -{ > - if (zswap_rb_erase(&tree->rbroot, entry)) > - zswap_entry_put(entry); > -} > - > static enum lru_status shrink_memcg_cb(struct list_head *item, struct list_lru_one *l, > spinlock_t *lock, void *arg) > {