• Josef Bacik's avatar
    Btrfs: detect wether a device supports discard · d5e2003c
    Josef Bacik authored
    We have a problem where if a user specifies discard but doesn't actually support
    it we will return EOPNOTSUPP from btrfs_discard_extent.  This is a problem
    because this gets called (in a fashion) from the tree log recovery code, which
    has a nice little BUG_ON(ret) after it, which causes us to fail the tree log
    replay.  So instead detect wether our devices support discard when we're adding
    them and then don't issue discards if we know that the device doesn't support
    it.  And just for good measure set ret = 0 in btrfs_issue_discard just in case
    we still get EOPNOTSUPP so we don't screw anybody up like this again.  Thanks,
    Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    d5e2003c
extent-tree.c 193 KB