From 1086f54219ebcdebf05b8f6bd10142c43c1f4f3f Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Fri, 5 Jul 2019 19:52:27 -0700 Subject: [PATCH] Revert "Fail early on bio corruption confirmed on 5.2-rc1" This reverts commit aa7aab6c457f106d2b794b9adf3fe5aa451ad8e. The change is not compatible with CentOS 6's 2.6.32 based kernel due to differnces in the bio layer. Signed-off-by: Brian Behlendorf Issue #8961 --- module/zfs/vdev_disk.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/module/zfs/vdev_disk.c b/module/zfs/vdev_disk.c index 8f06c411758f..1686ddfce77d 100644 --- a/module/zfs/vdev_disk.c +++ b/module/zfs/vdev_disk.c @@ -621,7 +621,6 @@ __vdev_disk_physio(struct block_device *bdev, zio_t *zio, bio_offset = io_offset; bio_size = io_size; for (i = 0; i <= dr->dr_bio_count; i++) { - unsigned int nr_iovecs; /* Finished constructing bio's for given buffer */ if (bio_size <= 0) @@ -639,11 +638,10 @@ __vdev_disk_physio(struct block_device *bdev, zio_t *zio, } /* bio_alloc() with __GFP_WAIT never returns NULL */ - nr_iovecs = MIN(abd_nr_pages_off(zio->io_abd, bio_size, - abd_offset), BIO_MAX_PAGES); - dr->dr_bio[i] = bio_alloc(GFP_NOIO, nr_iovecs); - if (unlikely(dr->dr_bio[i] == NULL || - (unsigned int)dr->dr_bio[i]->bi_max_vecs != nr_iovecs)) { + dr->dr_bio[i] = bio_alloc(GFP_NOIO, + MIN(abd_nr_pages_off(zio->io_abd, bio_size, abd_offset), + BIO_MAX_PAGES)); + if (unlikely(dr->dr_bio[i] == NULL)) { vdev_disk_dio_free(dr); return (SET_ERROR(ENOMEM)); }