]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
Btrfs: fix defrag regression
authorLi Zefan <lizefan@huawei.com>
Mon, 11 Jun 2012 08:03:35 +0000 (16:03 +0800)
committerChris Mason <chris.mason@oracle.com>
Fri, 15 Jun 2012 01:30:55 +0000 (21:30 -0400)
commit6c282eb40ed6f64a51ff447707714df551d85b8e
tree97d8a780a577d21c0f237f2140f3a129f40096bf
parent7ddf5a42d311d74fd9f7373cb56def0843c219f8
Btrfs: fix defrag regression

If a file has 3 small extents:

| ext1 | ext2 | ext3 |

Running "btrfs fi defrag" will only defrag the last two extents, if those
extent mappings hasn't been read into memory from disk.

This bug was introduced by commit 17ce6ef8d731af5edac8c39e806db4c7e1f6956f
("Btrfs: add a check to decide if we should defrag the range")

The cause is, that commit looked into previous and next extents using
lookup_extent_mapping() only.

While at it, remove the code that checks the previous extent, since
it's sufficient to check the next extent.

Signed-off-by: Li Zefan <lizefan@huawei.com>
fs/btrfs/ioctl.c