btrfs: don't attempt to trim devices that don't support it
authorJeff Mahoney <jeffm@suse.com>
Thu, 6 Sep 2018 21:18:15 +0000 (17:18 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 15 Oct 2018 15:23:32 +0000 (17:23 +0200)
commit0be88e367fd8fbdb45257615d691f4675dda062f
treed87c1ecf1e3ae1e2dba10c199a42105aadb43838
parentd4e329de5e5e21594df2e0dd59da9acee71f133b
btrfs: don't attempt to trim devices that don't support it

We check whether any device the file system is using supports discard in
the ioctl call, but then we attempt to trim free extents on every device
regardless of whether discard is supported.  Due to the way we mask off
EOPNOTSUPP, we can end up issuing the trim operations on each free range
on devices that don't support it, just wasting time.

Fixes: 499f377f49f08 ("btrfs: iterate over unused chunk space in FITRIM")
CC: stable@vger.kernel.org # 4.4+
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-tree.c