Revert "btrfs: Honour FITRIM range constraints during free space trim"
authorDavid Sterba <dsterba@suse.com>
Wed, 29 May 2019 17:25:45 +0000 (19:25 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 May 2019 13:48:13 +0000 (06:48 -0700)
commitabc261c8b99de79b7a249cfe05760565eab08e5f
treee05ed5a23d6bb0a048803f04f10ff0ee596dac13
parent2f6644ff006bc9429c2f72dd8705b4fe46f49639
Revert "btrfs: Honour FITRIM range constraints during free space trim"

This reverts commit 038ec2c13e0d1f7b9d45a081786f18f75b65f11b.

There is currently no corresponding patch in master due to additional
changes that would be significantly different from plain revert in the
respective stable branch.

The range argument was not handled correctly and could cause trim to
overlap allocated areas or reach beyond the end of the device. The
address space that fitrim normally operates on is in logical
coordinates, while the discards are done on the physical device extents.
This distinction cannot be made with the current ioctl interface and
caused the confusion.

The bug depends on the layout of block groups and does not always
happen. The whole-fs trim (run by default by the fstrim tool) is not
affected.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/extent-tree.c