• Coly Li's avatar
    bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in btree_gc_coalesce() · f72f4312
    Coly Li authored
    Commit 028ddcac ("bcache: Remove unnecessary NULL point check in
    node allocations") do the following change inside btree_gc_coalesce(),
    
    31 @@ -1340,7 +1340,7 @@ static int btree_gc_coalesce(
    32         memset(new_nodes, 0, sizeof(new_nodes));
    33         closure_init_stack(&cl);
    34
    35 -       while (nodes < GC_MERGE_NODES && !IS_ERR_OR_NULL(r[nodes].b))
    36 +       while (nodes < GC_MERGE_NODES && !IS_ERR(r[nodes].b))
    37                 keys += r[nodes++].keys;
    38
    39         blocks = btree_default_blocks(b->c) * 2 / 3;
    
    At line 35 the original r[nodes].b is not always allocatored from
    __bch_btree_node_alloc(), and possibly initialized as NULL pointer by
    caller of btree_gc_coalesce(). Therefore the change at line 36 is not
    correct.
    
    This patch replaces the mistaken IS_ERR() by IS_ERR_OR_NULL() to avoid
    potential issue.
    
    Fixes: 028ddcac ("bcache: Remove unnecessary NULL point check in node allocations")
    Cc:  <stable@vger.kernel.org> # 6.5+
    Cc: Zheng Wang <zyytlz.wz@163.com>
    Signed-off-by: default avatarColy Li <colyli@suse.de>
    Link: https://lore.kernel.org/r/20231120052503.6122-9-colyli@suse.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    f72f4312
btree.c 64 KB