• Mike Snitzer's avatar
    dm-crypt: stop constraining max_segment_size to PAGE_SIZE · 7560680c
    Mike Snitzer authored
    This change effectively reverts commit 586b286b ("dm crypt:
    constrain crypt device's max_segment_size to PAGE_SIZE") and relies on
    block core's late bio-splitting to ensure that dm-crypt's encryption
    bios are split accordingly if they exceed the underlying device's
    limits (e.g. max_segment_size).
    
    Commit 586b286b was applied as a 4.3 fix for the benefit of
    stable@ kernels 4.0+ just after block core's late bio-splitting was
    introduced in 4.3 with commit 54efd50b ("block: make
    generic_make_request handle arbitrarily sized bios"). Given block
    core's late bio-splitting it is past time that dm-crypt make use of
    it.
    
    Also, given the recent need to revert meaningful progress that was
    attempted during the 6.9 merge window (see commit bff4b746 Revert
    "dm: use queue_limits_set") this change allows DM core to safely make
    use of queue_limits_set() without risk of breaking dm-crypt on NVMe.
    Though it should be noted this commit isn't a prereq for reinstating
    DM core's use of queue_limits_set() because blk_validate_limits() was
    made less strict with commit b561ea56 ("block: allow device to
    have both virt_boundary_mask and max segment size").
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
    7560680c
dm-crypt.c 97.1 KB