]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ext4: fix EXT4_IOC_GROUP_ADD ioctl
authorruippan (潘睿) <ruippan@tencent.com>
Tue, 4 Dec 2018 06:04:12 +0000 (01:04 -0500)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 14 Aug 2019 09:18:49 +0000 (11:18 +0200)
BugLink: https://bugs.launchpad.net/bugs/1837257
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>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
fs/ext4/resize.c

index 22ae4de56f16ba2f1d693aaed8c79d51378cc7d1..9b7926186387121afa259ada805261a3c192a657 100644 (file)
@@ -1629,7 +1629,7 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input)
        }
 
        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");