* [PATCH] mm/z3fold: do not unlock in z3fold_page_putback()
@ 2022-07-20 6:57 zengjx95
2022-07-20 7:05 ` jingxiang zeng
0 siblings, 1 reply; 2+ messages in thread
From: zengjx95 @ 2022-07-20 6:57 UTC (permalink / raw)
To: vitaly.wool, linmiaohe, akpm; +Cc: linux-mm, linux-kernel, Zeng Jingxiang
From: Zeng Jingxiang <linuszeng@tencent.com>
z3fold_page_lock() will lock zhdr->page_lock
1630 z3fold_page_lock(zhdr);
return without unlocking zhdr->page_lock
1634 if (kref_put(&zhdr->refcount, release_z3fold_page_locked))
1635 return;
Signed-off-by: Zeng Jingxiang <linuszeng@tencent.com>
---
mm/z3fold.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/z3fold.c b/mm/z3fold.c
index f41f8b0d9e9a..03785832ad47 100644
--- a/mm/z3fold.c
+++ b/mm/z3fold.c
@@ -1632,13 +1632,14 @@ static void z3fold_page_putback(struct page *page)
list_del_init(&zhdr->buddy);
INIT_LIST_HEAD(&page->lru);
if (kref_put(&zhdr->refcount, release_z3fold_page_locked))
- return;
+ goto ret;
spin_lock(&pool->lock);
list_add(&page->lru, &pool->lru);
spin_unlock(&pool->lock);
if (list_empty(&zhdr->buddy))
add_to_unbuddied(pool, zhdr);
clear_bit(PAGE_CLAIMED, &page->private);
+ret:
z3fold_page_unlock(zhdr);
}
--
2.27.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] mm/z3fold: do not unlock in z3fold_page_putback()
2022-07-20 6:57 [PATCH] mm/z3fold: do not unlock in z3fold_page_putback() zengjx95
@ 2022-07-20 7:05 ` jingxiang zeng
0 siblings, 0 replies; 2+ messages in thread
From: jingxiang zeng @ 2022-07-20 7:05 UTC (permalink / raw)
To: vitaly.wool, linmiaohe, akpm; +Cc: linux-mm, linux-kernel, Zeng Jingxiang
<zengjx95@gmail.com> 于2022年7月20日周三 14:58写道:
>
> From: Zeng Jingxiang <linuszeng@tencent.com>
>
> z3fold_page_lock() will lock zhdr->page_lock
> 1630 z3fold_page_lock(zhdr);
>
> return without unlocking zhdr->page_lock
> 1634 if (kref_put(&zhdr->refcount, release_z3fold_page_locked))
> 1635 return;
>
> Signed-off-by: Zeng Jingxiang <linuszeng@tencent.com>
> ---
> mm/z3fold.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/z3fold.c b/mm/z3fold.c
> index f41f8b0d9e9a..03785832ad47 100644
> --- a/mm/z3fold.c
> +++ b/mm/z3fold.c
> @@ -1632,13 +1632,14 @@ static void z3fold_page_putback(struct page *page)
> list_del_init(&zhdr->buddy);
> INIT_LIST_HEAD(&page->lru);
> if (kref_put(&zhdr->refcount, release_z3fold_page_locked))
> - return;
> + goto ret;
> spin_lock(&pool->lock);
> list_add(&page->lru, &pool->lru);
> spin_unlock(&pool->lock);
> if (list_empty(&zhdr->buddy))
> add_to_unbuddied(pool, zhdr);
> clear_bit(PAGE_CLAIMED, &page->private);
> +ret:
> z3fold_page_unlock(zhdr);
> }
>
> --
> 2.27.0
>
Sorry, I just misunderstood the code logic, please ignore this patch.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-07-20 7:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-20 6:57 [PATCH] mm/z3fold: do not unlock in z3fold_page_putback() zengjx95
2022-07-20 7:05 ` jingxiang zeng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox