| From e647e29196b7f802f8242c39ecb7cc937f5ef217 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?ruippan=20=28=E6=BD=98=E7=9D=BF=29?= <ruippan@tencent.com> |
| Date: Tue, 4 Dec 2018 01:04:12 -0500 |
| Subject: ext4: fix EXT4_IOC_GROUP_ADD ioctl |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: ruippan (潘睿) <ruippan@tencent.com> |
| |
| commit e647e29196b7f802f8242c39ecb7cc937f5ef217 upstream. |
| |
| Commit e2b911c53584 ("ext4: clean up feature test macros with |
| predicate functions") broke the EXT4_IOC_GROUP_ADD ioctl. This was |
| not noticed since only very old versions of resize2fs (before |
| e2fsprogs 1.42) use this ioctl. However, using a new kernel with an |
| enterprise Linux userspace will cause attempts to use online resize to |
| fail with "No reserved GDT blocks". |
| |
| Fixes: e2b911c53584 ("ext4: clean up feature test macros with predicate...") |
| Cc: stable@kernel.org # v4.4 |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: ruippan (潘睿) <ruippan@tencent.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/ext4/resize.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/fs/ext4/resize.c |
| +++ b/fs/ext4/resize.c |
| @@ -1600,7 +1600,7 @@ int ext4_group_add(struct super_block *s |
| } |
| |
| if (reserved_gdb || gdb_off == 0) { |
| - if (ext4_has_feature_resize_inode(sb) || |
| + if (!ext4_has_feature_resize_inode(sb) || |
| !le16_to_cpu(es->s_reserved_gdt_blocks)) { |
| ext4_warning(sb, |
| "No reserved GDT blocks, can't resize"); |