ocfs2: correctly use ocfs2_find_next_zero_bit()
authorJoseph Qi <joseph.qi@linux.alibaba.com>
Thu, 14 Mar 2024 02:17:13 +0000 (10:17 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 26 Apr 2024 04:07:01 +0000 (21:07 -0700)
If no bits are zero, ocfs2_find_next_zero_bit() will return max size, so
check the return value with -1 is meaningless.  Correct this usage and
cleanup the code.

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

index c803c10dd97ef13c6be25dcddd78e99106a42146..33aeaaa056d70aa51651ce85eca8600fbb80c79c 100644 (file)
@@ -863,14 +863,8 @@ static int ocfs2_local_alloc_find_clear_bits(struct ocfs2_super *osb,
 
        numfound = bitoff = startoff = 0;
        left = le32_to_cpu(alloc->id1.bitmap1.i_total);
-       while ((bitoff = ocfs2_find_next_zero_bit(bitmap, left, startoff)) != -1) {
-               if (bitoff == left) {
-                       /* mlog(0, "bitoff (%d) == left", bitoff); */
-                       break;
-               }
-               /* mlog(0, "Found a zero: bitoff = %d, startoff = %d, "
-                  "numfound = %d\n", bitoff, startoff, numfound);*/
-
+       while ((bitoff = ocfs2_find_next_zero_bit(bitmap, left, startoff)) <
+              left) {
                /* Ok, we found a zero bit... is it contig. or do we
                 * start over?*/
                if (bitoff == startoff) {
@@ -976,9 +970,9 @@ static int ocfs2_sync_local_to_main(struct ocfs2_super *osb,
        start = count = 0;
        left = le32_to_cpu(alloc->id1.bitmap1.i_total);
 
-       while ((bit_off = ocfs2_find_next_zero_bit(bitmap, left, start))
-              != -1) {
-               if ((bit_off < left) && (bit_off == start)) {
+       while ((bit_off = ocfs2_find_next_zero_bit(bitmap, left, start)) <
+              left) {
+               if (bit_off == start) {
                        count++;
                        start++;
                        continue;
@@ -1002,8 +996,7 @@ static int ocfs2_sync_local_to_main(struct ocfs2_super *osb,
                                goto bail;
                        }
                }
-               if (bit_off >= left)
-                       break;
+
                count = 1;
                start = bit_off + 1;
        }
index a9d1296d736dc4dd4ab9b40ad6eadc3af6d52788..1fe61974d9f02368ea74460668767a7cded89e79 100644 (file)
@@ -414,7 +414,7 @@ static int ocfs2_resmap_find_free_bits(struct ocfs2_reservation_map *resmap,
 
        start = search_start;
        while ((offset = ocfs2_find_next_zero_bit(bitmap, resmap->m_bitmap_len,
-                                                start)) != -1) {
+                                       start)) < resmap->m_bitmap_len) {
                /* Search reached end of the region */
                if (offset >= (search_start + search_len))
                        break;
index 166c8918c825a60b755816c384ec22bbed3d1b70..961998415308d7142f6e9972f2c1850cd36c865b 100644 (file)
@@ -1290,10 +1290,8 @@ static int ocfs2_block_group_find_clear_bits(struct ocfs2_super *osb,
        found = start = best_offset = best_size = 0;
        bitmap = bg->bg_bitmap;
 
-       while((offset = ocfs2_find_next_zero_bit(bitmap, total_bits, start)) != -1) {
-               if (offset == total_bits)
-                       break;
-
+       while ((offset = ocfs2_find_next_zero_bit(bitmap, total_bits, start)) <
+              total_bits) {
                if (!ocfs2_test_bg_bit_allocatable(bg_bh, offset)) {
                        /* We found a zero, but we can't use it as it
                         * hasn't been put to disk yet! */