Re: [PATCH V3] bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again

邹明哲 <[email protected]>
Newsgroups org.kernel.vger.linux-bcache,org.kernel.vger.linux-kernel
Message-ID <AFMA0QCFLtADtc2DVJA7zqrc.3.1732683934173.Hmail.mingzhe.zou@easystack.cn>
LGTM

reviewed by Mingzhe Zou

Original:
From:Coly Li <[email protected]>
Date:2024-11-27 11:17:01(中国 (GMT+08:00))
To:liequan che <[email protected]>
Cc:[email protected]<[email protected]> , Kent Overstreet <[email protected]> , linux-bcache <[email protected]> , linux-kernel <[email protected]>
Subject:Re: [PATCH V3] bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again
&gt; 2024年11月27日 11:01,liequan che <[email protected]> 写道:
&gt; 
&gt; Commit 028ddcac477b ("bcache: Remove unnecessary NULL point check in
&gt; node allocations") leads a NULL pointer deference in cache_set_flush().
&gt; 
&gt; 1721         if (!IS_ERR_OR_NULL(c-&gt;root))
&gt; 1722                 list_add(&amp;c-&gt;root-&gt;list, &amp;c-&gt;btree_cache);
&gt; 
&gt; From the above code in cache_set_flush(), if previous registration code
&gt; fails before allocating c-&gt;root, it is possible c-&gt;root is NULL as what
&gt; it is initialized. Also __bch_btree_node_alloc() never returns NULL but
&gt; c-&gt;root is possible to be NULL at above line 1721.
&gt; 
&gt; This patch replaces IS_ERR() by IS_ERR_OR_NULL() to fix this.


OK, this time the commit log makes a lot sense. It is clear to me.


&gt; 
&gt; Fixes: 028ddcac477b ("bcache: Remove unnecessary NULL point check in
&gt; node allocations")
&gt; Signed-off-by: Liequan Che <[email protected]>
&gt; Cc: [email protected]
&gt; Cc: Zheng Wang <[email protected]>
&gt; Cc: Coly Li <[email protected]>
&gt; ---
&gt; drivers/md/bcache/super.c | 2 +-
&gt; 1 file changed, 1 insertion(+), 1 deletion(-)
&gt; 
&gt; diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
&gt; index e7abfdd77c3b..e42f1400cea9 100644
&gt; --- a/drivers/md/bcache/super.c
&gt; +++ b/drivers/md/bcache/super.c
&gt; @@ -1718,7 +1718,7 @@ static CLOSURE_CALLBACK(cache_set_flush)
&gt;        if (!IS_ERR_OR_NULL(c-&gt;gc_thread))
&gt;                kthread_stop(c-&gt;gc_thread);
&gt; 
&gt; -       if (!IS_ERR(c-&gt;root))
&gt; +       if (!IS_ERR_OR_NULL(c-&gt;root))
&gt;                list_add(&amp;c-&gt;root-&gt;list, &amp;c-&gt;btree_cache);
&gt; 
&gt;        /*
&gt; —
&gt; 2.46.0

It is fine to me. I am in travel these days, and will handle this patch by end of this week.

Thanks for composing this patch.

Coly Li
</[email protected]></[email protected]></[email protected]></[email protected]></[email protected]></[email protected]></[email protected]></[email protected]></[email protected]></[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.