ocfs2: speed up chain-list searching
authorHeming Zhao <heming.zhao@suse.com>
Thu, 28 Mar 2024 12:52:02 +0000 (20:52 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 26 Apr 2024 04:07:04 +0000 (21:07 -0700)
Add short-circuit code to speed up searching

Link: https://lkml.kernel.org/r/20240328125203.20892-4-heming.zhao@suse.com
Signed-off-by: Heming Zhao <heming.zhao@suse.com>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Gang He <ghe@suse.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Jun Piao <piaojun@huawei.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Mark Fasheh <mark@fasheh.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/ocfs2/suballoc.c

index 8314ec487cfb7caa4a7b2a928179d0b40a20ecdf..f7b483f0de2adde222f31c707ad2c5ecbff4882e 100644 (file)
@@ -2006,7 +2006,7 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
        for (i = 0; i < le16_to_cpu(cl->cl_next_free_rec); i ++) {
                if (i == victim)
                        continue;
-               if (!cl->cl_recs[i].c_free)
+               if (le32_to_cpu(cl->cl_recs[i].c_free) < bits_wanted)
                        continue;
 
                ac->ac_chain = i;