summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2012-12-20 19:21:07 +0100
committerSteven Whitehouse <swhiteho@redhat.com>2013-01-02 11:05:10 +0100
commit15bd50ad82a6d3421af1abe82e2554898abc4141 (patch)
treef23d595b1306ad4cddf64c181ac831af8cb3042d /fs
parentGFS2: Fix race in gfs2_rs_alloc (diff)
downloadlinux-15bd50ad82a6d3421af1abe82e2554898abc4141.tar.xz
linux-15bd50ad82a6d3421af1abe82e2554898abc4141.zip
GFS2: Stop looking for free blocks at end of rgrp
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>
Diffstat (limited to 'fs')
-rw-r--r--fs/gfs2/rgrp.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 738b3888adc6..712dd4fd8641 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -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;
}