• Damien Le Moal's avatar
    f2fs: improve discard handling with multi-device volumes · 7f3d7719
    Damien Le Moal authored
    f2fs_hw_support_discard() only tests if the super block device supports
    discard. However, for a multi-device volume, not all disks used may
    support discard. Improve the check performed to test all devices of
    the volume and report discard as supported if at least one device of
    the volume supports discard. To implement this, introduce the helper
    function f2fs_bdev_support_discard(), which returns true for zoned block
    devices (where discard is processed as a zone reset) and for regular
    disks supporting the discard command.
    
    f2fs_bdev_support_discard() is also used in __queue_discard_cmd() to
    handle discard command issuing for a particular device of the volume.
    That is, prevent issuing a discard command for block devices that do
    not support it.
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
    Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    7f3d7719
segment.c 113 KB