The commit is pushed to "branch-rh7-3.10.0-693.17.1.vz7.45.x-ovz" and will 
appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.17.1.vz7.45.4
------>
commit 50701fc25402b4aa585cb1dd8e7ac7423c57bf07
Author: Kirill Tkhai <ktk...@virtuozzo.com>
Date:   Tue Feb 27 15:34:12 2018 +0300

    ploop: Discard bios of size not aligned at 512 bytes
    
    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
    
    Reported-by: Andrey Vagin <ava...@virtuozzo.com>
    Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com>
    Acked-by: Andrei Vagin <ava...@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);
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to