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)
committerBob Peterson <rpeterso@redhat.com>
Wed, 7 Mar 2018 18:40:38 +0000 (11:40 -0700)
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>
fs/gfs2/bmap.c

index 86d6a44..51f940e 100644 (file)
@@ -807,9 +807,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;
 }