ext4_extent: fix truncate freeing blocks at the wrong boundary
authorKaho Ng <ngkaho1234@gmail.com>
Tue, 31 May 2016 11:46:38 +0000 (19:46 +0800)
committerKaho Ng <ngkaho1234@gmail.com>
Tue, 31 May 2016 13:05:05 +0000 (21:05 +0800)
src/ext4_extent.c

index f5148a7a66dad82636286cb68ccac7cb7a6bf5e3..b056aab2c33b0019c722fc461a481f3f33d2243d 100644 (file)
@@ -1260,8 +1260,8 @@ static int ext4_ext_remove_leaf(struct ext4_inode_ref *inode_ref,
                        start_ex++;
                } else {
                        if (start + len - 1 > to) {
-                               len -= start + len - 1 - to;
                                new_len = start + len - 1 - to;
+                               len -= new_len;
                                new_start = to + 1;
                                newblock += to + 1 - start;
                                ex2 = ex;