block: Consolidate phys_segment and hw_segment limits

Except for SCSI no device drivers distinguish between physical and
hardware segment limits.  Consolidate the two into a single segment
limit.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Martin K. Petersen
2010-02-26 00:20:39 -05:00
committed by Jens Axboe
parent 086fa5ff08
commit 8a78362c4e
35 changed files with 70 additions and 136 deletions

View File

@@ -507,10 +507,8 @@ int bio_get_nr_vecs(struct block_device *bdev)
int nr_pages;
nr_pages = ((queue_max_sectors(q) << 9) + PAGE_SIZE - 1) >> PAGE_SHIFT;
if (nr_pages > queue_max_phys_segments(q))
nr_pages = queue_max_phys_segments(q);
if (nr_pages > queue_max_hw_segments(q))
nr_pages = queue_max_hw_segments(q);
if (nr_pages > queue_max_segments(q))
nr_pages = queue_max_segments(q);
return nr_pages;
}
@@ -575,8 +573,7 @@ static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page
* make this too complex.
*/
while (bio->bi_phys_segments >= queue_max_phys_segments(q)
|| bio->bi_phys_segments >= queue_max_hw_segments(q)) {
while (bio->bi_phys_segments >= queue_max_segments(q)) {
if (retried_segments)
return 0;