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

When trying to resize an ext4 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: "Theodore Ts'o" <tytso@mit.edu>

authored by Josef Bacik and committed by Theodore Ts'o 37609fd5 88aa3cff

+2 -1
+2 -1
fs/ext4/resize.c
··· 773 773 774 774 if (reserved_gdb || gdb_off == 0) { 775 775 if (!EXT4_HAS_COMPAT_FEATURE(sb, 776 - EXT4_FEATURE_COMPAT_RESIZE_INODE)){ 776 + EXT4_FEATURE_COMPAT_RESIZE_INODE) 777 + || !le16_to_cpu(es->s_reserved_gdt_blocks)) { 777 778 ext4_warning(sb, __func__, 778 779 "No reserved GDT blocks, can't resize"); 779 780 return -EPERM;