GFS2: kernel panic with small gfs2 filesystems - 1 RG
authorAbhijith Das <adas@redhat.com>
Wed, 18 Jul 2012 15:56:59 +0000 (11:56 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 18 Jul 2012 15:45:13 +0000 (16:45 +0100)
In the unlikely setup where there's only one resource group in the gfs2
filesystem, gfs2_rgrpd_get_next() returns a NULL rgd that is not dealt with
properly, causing a kernel NULL ptr dereference. This patch fixes this issue.

Signed-off-by: Abhi Das <adas@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/rgrp.c

index e53d0a1..fb70792 100644 (file)
@@ -1276,6 +1276,7 @@ int gfs2_inplace_reserve(struct gfs2_inode *ip, u32 requested)
                        /* fall through */
                case GLR_TRYFAILED:
                        rgd = gfs2_rgrpd_get_next(rgd);
+                       rgd = rgd ? : begin; /* if NULL, wrap */
                        if (rgd != begin) /* If we didn't wrap */
                                break;