Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 800

kernel-2.6.18-194.11.1.el5.src.rpm

From: Josef Bacik <jbacik@redhat.com>
Date: Mon, 20 Apr 2009 15:31:35 -0400
Subject: [fs] ext3: don't resize if no reserved gdt blocks left
Message-id: 1240255895-26089-1-git-send-email-jbacik@redhat.com
O-Subject: [PATCH] [RHEL5.4] ext3: don't try to resize if there are no reserved gdt blocks left
Bugzilla: 443541
RH-Acked-by: Peter Staubach <staubach@redhat.com>
RH-Acked-by: Eric Sandeen <sandeen@redhat.com>

This is in reference to bz 443541, and is a backport of the commit

commit 972fbf779832e5ad15effa7712789aeff9224c37
Author: Josef Bacik <jbacik@redhat.com>
Date:   Sat Oct 18 20:27:55 2008 -0700

    ext3: don't try to resize if there are no reserved gdt blocks left

    When trying to resize a ext3 fs and you run out of reserved gdt blocks,
    you get an error that doesn't actually tell you what went wrong, it just
    says that the gdb it picked is not correct, which is the case since you
    don't have any reserved gdt blocks left.  This patch adds a check to make
    sure you have reserved gdt blocks to use, and if not prints out a more
    relevant error.

    Signed-off-by: Josef Bacik <jbacik@redhat.com>
    Cc: <linux-ext4@vger.kernel.org>
    Cc: Andreas Dilger <adilger@sun.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c
index c1fefb9..f2354d2 100644
--- a/fs/ext3/resize.c
+++ b/fs/ext3/resize.c
@@ -791,7 +791,8 @@ int ext3_group_add(struct super_block *sb, struct ext3_new_group_data *input)
 
 	if (reserved_gdb || gdb_off == 0) {
 		if (!EXT3_HAS_COMPAT_FEATURE(sb,
-					     EXT3_FEATURE_COMPAT_RESIZE_INODE)){
+					     EXT3_FEATURE_COMPAT_RESIZE_INODE)
+		    || !le16_to_cpu(es->s_reserved_gdt_blocks)) {
 			ext3_warning(sb, __FUNCTION__,
 				     "No reserved GDT blocks, can't resize");
 			return -EPERM;