• J
    ext3: fix online resize bug · 9bb91784
    Josef Bacik 提交于
    There is a bug when we are trying to verify that the reserve inode's
    double indirect blocks point back to the primary gdt blocks.  The fix is
    obvious, we need to mod the gdb count by the addr's per block.  You can
    verify this with the following test case
    
    dd if=/dev/zero of=disk1 seek=1024 count=1 bs=100M
    losetup /dev/loop1 disk1
    pvcreate /dev/loop1
    vgcreate loopvg1 /dev/loop1
    lvcreate -l 100%VG loopvg1 -n looplv1
    mkfs.ext3 -J size=64 -b 1024 /dev/loopvg1/looplv1
    mount /dev/loopvg1/looplv1 /mnt/loop
    dd if=/dev/zero of=disk2 seek=1024 count=1 bs=50M
    losetup /dev/loop2 disk2
    pvcreate /dev/loop2
    vgextend loopvg1 /dev/loop2
    lvextend -l 100%VG /dev/loopvg1/looplv1
    resize2fs /dev/loopvg1/looplv1
    
    without this patch the resize2fs fails, with it the resize2fs succeeds.
    Signed-off-by: NJosef Bacik <jbacik@redhat.com>
    Acked-by: NAndreas Dilger <adilger@sun.com>
    Cc: <linux-ext4@vger.kernel.org>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    9bb91784
resize.c 33.3 KB