Whamcloud - gitweb
resize2fs: fix inode table move for the backwards move case
authorTheodore Ts'o <tytso@mit.edu>
Mon, 28 Apr 2014 14:07:16 +0000 (10:07 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 5 May 2014 03:15:49 +0000 (23:15 -0400)
In the case where the new location of the inode table is before the
old inode table, the optimization which tries to optimize zero block
moves breaks.  Fix it.

This fixes a bug that was tickled by the reproduction described in the
previous commit.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
resize/resize2fs.c

index 0d968fa..c672cdb 100644 (file)
@@ -1869,6 +1869,8 @@ static errcode_t move_itables(ext2_resize_t rfs)
 
                if (!diff)
                        continue;
+               if (diff < 0)
+                       diff = 0;
 
                retval = io_channel_read_blk64(fs->io, old_blk,
                                               fs->inode_blocks_per_group,