OSDN Git Service

Merge branch 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[uclinux-h8/linux.git] / block / blk-merge.c
index 9402a7c..22467f4 100644 (file)
@@ -277,6 +277,9 @@ static struct bio *blk_bio_segment_split(struct request_queue *q,
                        bvprvp = &bvprv;
                        sectors += bv.bv_len >> 9;
 
+                       if (nsegs == 1 && seg_size > front_seg_size)
+                               front_seg_size = seg_size;
+
                        continue;
                }
 new_segment:
@@ -401,6 +404,11 @@ static unsigned int __blk_recalc_rq_segments(struct request_queue *q,
 
                                seg_size += bv.bv_len;
                                bvprv = bv;
+
+                               if (nr_phys_segs == 1 && seg_size >
+                                               front_seg_size)
+                                       front_seg_size = seg_size;
+
                                continue;
                        }
 new_segment: