GFS2: Stop looking for free blocks at end of rgrp
authorBob Peterson <rpeterso@redhat.com>
Thu, 20 Dec 2012 18:21:07 +0000 (13:21 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 2 Jan 2013 10:05:10 +0000 (10:05 +0000)
This patch adds a return code check after calling function
gfs2_rbm_from_block while determining the free extent size.
That way, when the end of an rgrp is reached, it won't try
to process unaligned blocks after the end.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/rgrp.c

index 738b3888adc639bf859e182bd9740457fed8cc70..712dd4fd8641b92d64efde6c298568a92aa0e8dc 100644 (file)
@@ -350,10 +350,14 @@ static u32 gfs2_free_extlen(const struct gfs2_rbm *rrbm, u32 len)
                BUG_ON(len < chunk_size);
                len -= chunk_size;
                block = gfs2_rbm_to_block(&rbm);
-               gfs2_rbm_from_block(&rbm, block + chunk_size);
-               n_unaligned = 3;
-               if (ptr)
+               if (gfs2_rbm_from_block(&rbm, block + chunk_size)) {
+                       n_unaligned = 0;
                        break;
+               }
+               if (ptr) {
+                       n_unaligned = 3;
+                       break;
+               }
                n_unaligned = len & 3;
        }