lkml.org 
[lkml]   [2018]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 325/350] btrfs: dont attempt to trim devices that dont support it
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jeff Mahoney <jeffm@suse.com>

    commit 0be88e367fd8fbdb45257615d691f4675dda062f upstream.

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/btrfs/extent-tree.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- a/fs/btrfs/extent-tree.c
    +++ b/fs/btrfs/extent-tree.c
    @@ -10905,6 +10905,10 @@ static int btrfs_trim_free_extents(struc

    *trimmed = 0;

    + /* Discard not supported = nothing to do. */
    + if (!blk_queue_discard(bdev_get_queue(device->bdev)))
    + return 0;
    +
    /* Not writeable = nothing to do. */
    if (!test_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state))
    return 0;

    \
     
     \ /
      Last update: 2018-11-12 00:14    [W:4.024 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site