test max hw sectors for REQ_PC commands
Subsystems (2)
PATCH 9/10 test max hw sectors for REQ_PC commands
for REQ_PC commands we want to test for max_hw_sectors.
Signed-off-by Mike Christie <[email protected]>
drivers/block/ll_rw_blk.c +15 -2
@@ -1322,9 +1322,15 @@ static inline int ll_new_hw_segment(requstatic int ll_back_merge_fn (request_queue_t *q,struct request *req,struct bio *bio) { +unsigned short max_sectors;int len; -if (req->nr_sectors +bio_sectors (bio) > q->max_sectors) { +if (unlikely (blk_pc_request (req))) + max_sectors = q->max_hw_sectors; +else + max_sectors = q->max_sectors; + +if (req->nr_sectors +bio_sectors (bio) > max_sectors) { req->flags |=REQ_NOMERGE ;if (req == q->last_merge) q->last_merge =NULL ;
@@ -1354,9 +1360,16 @@ static int ll_back_merge_fn(request_queustatic int ll_front_merge_fn (request_queue_t *q,struct request *req,struct bio *bio) { +unsigned short max_sectors;int len; -if (req->nr_sectors +bio_sectors (bio) > q->max_sectors) { +if (unlikely (blk_pc_request (req))) + max_sectors = q->max_hw_sectors; +else + max_sectors = q->max_sectors; + + +if (req->nr_sectors +bio_sectors (bio) > max_sectors) { req->flags |=REQ_NOMERGE ;if (req == q->last_merge) q->last_merge =NULL ;
drivers/scsi/scsi_lib.c +1 -1
@@ -461,6 +461,7 @@ int scsi_execute_async(struct scsi_devic req =blk_get_request (sdev->request_queue, write, gfp);if (!req) goto free_sense; + req->flags |=REQ_BLOCK_PC |REQ_QUIET ;if (use_sg) err =scsi_req_map_sg (req, buffer, use_sg, bufflen, gfp);
@@ -476,7 +477,6 @@ int scsi_execute_async(struct scsi_devic req->sense_len =0 ; req->timeout = timeout; req->retries = retries; - req->flags |=REQ_BLOCK_PC |REQ_QUIET ; req->end_io_data = sioc; sioc->data = privdata;