diff options
Diffstat (limited to 'block/bio.c')
-rw-r--r-- | block/bio.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/block/bio.c b/block/bio.c index 8c2e55e39a1b..0ec61c9e536c 100644 --- a/block/bio.c +++ b/block/bio.c | |||
@@ -746,6 +746,14 @@ static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page | |||
746 | 746 | ||
747 | goto done; | 747 | goto done; |
748 | } | 748 | } |
749 | |||
750 | /* | ||
751 | * If the queue doesn't support SG gaps and adding this | ||
752 | * offset would create a gap, disallow it. | ||
753 | */ | ||
754 | if (q->queue_flags & (1 << QUEUE_FLAG_SG_GAPS) && | ||
755 | bvec_gap_to_prev(prev, offset)) | ||
756 | return 0; | ||
749 | } | 757 | } |
750 | 758 | ||
751 | if (bio->bi_vcnt >= bio->bi_max_vecs) | 759 | if (bio->bi_vcnt >= bio->bi_max_vecs) |