[Devel] [PATCH v2] ploop: Discard bios of size not aligned at 512 bytes
Andrei Vagin
avagin at virtuozzo.com
Wed Feb 21 22:12:39 MSK 2018
On Wed, Feb 21, 2018 at 09:45:17PM +0300, Kirill Tkhai wrote:
> Currently, we have BUG_ON() on this place. But it's
> easy to generate 511 bytes request from userspace,
> as it was found by Andrey Vagin via iscsi tests:
>
> sg_raw -r511 /dev/sda 28 0 0 0 0 0 0 0 9 0
>
> This patch replaces BUG_ON() with bio discarding
> like other drivers do when they see a size above
> their logical block size.
>
> https://jira.sw.ru/browse/PSBM-81576
>
Acked-by: Andrei Vagin <avagin at virtuozzo.com>
> Reported-by: Andrey Vagin <avagin at virtuozzo.com>
> Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
> ---
> drivers/block/ploop/dev.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/block/ploop/dev.c b/drivers/block/ploop/dev.c
> index 6c0b3c0252c0..82d986922b4b 100644
> --- a/drivers/block/ploop/dev.c
> +++ b/drivers/block/ploop/dev.c
> @@ -846,7 +846,11 @@ static void ploop_make_request(struct request_queue *q, struct bio *bio)
> plo->st.bio_in++;
>
> BUG_ON(bio->bi_idx);
> - BUG_ON(bio->bi_size & 511);
> + if (bio->bi_size & 511) {
> + pr_err_once("ploop%d: dropped bio: bi_size=%u\n", plo->index, bio->bi_size);
> + BIO_ENDIO(q, bio, -EIO);
> + return;
> + }
>
> cpu = part_stat_lock();
> part = disk_map_sector_rcu(plo->disk, bio->bi_sector);
>
More information about the Devel
mailing list