blkio: Add more debug-only per-cgroup stats
[safe/jmp/linux-2.6] / block / blk-merge.c
index b0de857..5e7dc99 100644 (file)
@@ -206,8 +206,7 @@ static inline int ll_new_hw_segment(struct request_queue *q,
 {
        int nr_phys_segs = bio_phys_segments(q, bio);
 
-       if (req->nr_phys_segments + nr_phys_segs > queue_max_hw_segments(q) ||
-           req->nr_phys_segments + nr_phys_segs > queue_max_phys_segments(q)) {
+       if (req->nr_phys_segments + nr_phys_segs > queue_max_segments(q)) {
                req->cmd_flags |= REQ_NOMERGE;
                if (req == q->last_merge)
                        q->last_merge = NULL;
@@ -300,10 +299,7 @@ static int ll_merge_requests_fn(struct request_queue *q, struct request *req,
                total_phys_segments--;
        }
 
-       if (total_phys_segments > queue_max_phys_segments(q))
-               return 0;
-
-       if (total_phys_segments > queue_max_hw_segments(q))
+       if (total_phys_segments > queue_max_segments(q))
                return 0;
 
        /* Merge is OK... */
@@ -351,7 +347,7 @@ static void blk_account_io_merge(struct request *req)
                part = disk_map_sector_rcu(req->rq_disk, blk_rq_pos(req));
 
                part_round_stats(cpu, part);
-               part_dec_in_flight(part);
+               part_dec_in_flight(part, rq_data_dir(req));
 
                part_stat_unlock();
        }