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.

This bug was reported in rhel6: 
https://bugzilla.redhat.com/show_bug.cgi?id=838638

Signed-off-by: Abhi Das <a...@redhat.com>


diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index e53d0a1..fb70792 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -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;
 

Reply via email to