Message ID | 20240130014208.565554-4-hannes@cmpxchg.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: zswap: cleanups | expand |
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@cmpxchg.org> Reviewed-by: Chengming Zhou <zhouchengming@bytedance.com> > --- > 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) > {
On Mon, Jan 29, 2024 at 08:36:39PM -0500, Johannes Weiner wrote: > Move it up to the other tree and refcounting functions. > > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Yosry Ahmed <yosryahmed@google.com>
On Mon, Jan 29, 2024 at 5:42 PM Johannes Weiner <hannes@cmpxchg.org> wrote: > > Move it up to the other tree and refcounting functions. > > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> > --- > 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) nit? entry_invalidate? There's an entry_put above() Anyway: Reviewed-by: Nhat Pham <nphamcs@gmail.com> > +{ > + 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) > { > -- > 2.43.0 >
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) {
Move it up to the other tree and refcounting functions. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> --- mm/zswap.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)