]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
gfs2: Fixes to "Implement iomap for block_map" (2)
authorAndreas Gruenbacher <agruenba@redhat.com>
Mon, 5 Mar 2018 13:18:25 +0000 (06:18 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Mar 2018 08:09:49 +0000 (09:09 +0100)
commit 3b5da96e4585a2788da6a07619bda3518d76eb30 upstream.

It turns out that commit 3229c18c0d6b2 'Fixes to "Implement iomap for
block_map"' introduced another bug in gfs2_iomap_begin that can cause
gfs2_block_map to set bh->b_size of an actual buffer to 0.  This can
lead to arbitrary incorrect behavior including crashes or disk
corruption.  Revert the incorrect part of that commit.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/gfs2/bmap.c

index 76de441b4d9fd62d191e84dde7e48206bf5cc2b4..f13e986696f7b06815b76c3cb7c526fe176c0781 100644 (file)
@@ -811,9 +811,6 @@ do_alloc:
                        iomap->length = hole_size(inode, lblock, &mp);
                else
                        iomap->length = size - pos;
-       } else {
-               if (height <= ip->i_height)
-                       iomap->length = hole_size(inode, lblock, &mp);
        }
        goto out_release;
 }