Skip to content

Commit

Permalink
Revert "Fail early on bio corruption confirmed on 5.2-rc1"
Browse files Browse the repository at this point in the history
This reverts commit aa7aab6.
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 <behlendorf1@llnl.gov>
Issue #8961
  • Loading branch information
behlendorf committed Jul 6, 2019
1 parent 52a83dc commit 1086f54
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions module/zfs/vdev_disk.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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));
}
Expand Down

0 comments on commit 1086f54

Please sign in to comment.