Signed-off-by: Andreas Gruenbacher <[email protected]>
---
 fs/gfs2/bmap.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 03128ed1f34e..a564cf0b7221 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -294,8 +294,11 @@ static void clone_metapath(struct metapath *clone, struct 
metapath *mp)
        unsigned int hgt;
 
        *clone = *mp;
-       for (hgt = 0; hgt < mp->mp_aheight; hgt++)
+       for (hgt = 0; hgt < GFS2_MAX_META_HEIGHT; hgt++) {
+               if (mp->mp_bh[hgt] == NULL)
+                       break;
                get_bh(clone->mp_bh[hgt]);
+       }
 }
 
 static void gfs2_metapath_ra(struct gfs2_glock *gl, __be64 *start, __be64 *end)
-- 
2.17.1

Reply via email to