Thread (8 messages) 8 messages, 4 authors, 2015-05-06

Re: [PATCH 07/10] block: kill merge_bvec_fn() completely

From: Ming Lin <mlin@kernel.org>
Date: 2015-05-06 17:05:18
Also in: ceph-devel, dm-devel, lkml

On Wed, May 6, 2015 at 12:26 AM, Christoph Hellwig [off-list ref] wrote:
quoted
-static int chunk_aligned_read(struct mddev *mddev, struct bio * raid_bio)
+static int __chunk_aligned_read(struct mddev *mddev, struct bio *raid_bio)
Call it raid5_read_one_chunk or something similar descriptive?
quoted
 {
      struct r5conf *conf = mddev->private;
      int dd_idx;
@@ -4718,7 +4718,7 @@ static int chunk_aligned_read(struct mddev *mddev, struct bio * raid_bio)
      sector_t end_sector;

      if (!in_chunk_boundary(mddev, raid_bio)) {
-             pr_debug("chunk_aligned_read : non aligned\n");
+             pr_debug("__chunk_aligned_read : non aligned\n");
Switch to __func__?
quoted
+static struct bio *chunk_aligned_read(struct mddev *mddev, struct bio *raid_bio)
+{
+     struct bio *split;
+
+     do {
+             sector_t sector = raid_bio->bi_iter.bi_sector;
+             unsigned chunk_sects = mddev->chunk_sectors;
+
+             unsigned sectors = chunk_sects -
+                     (likely(is_power_of_2(chunk_sects))
+                      ? (sector & (chunk_sects-1))
+                      : sector_div(sector, chunk_sects));
This would be a lot more readable with a good old if.
quoted
      if (rw == READ && mddev->degraded == 0 &&
           mddev->reshape_position == MaxSector &&
-          chunk_aligned_read(mddev,bi))
+          (!(bi = chunk_aligned_read(mddev, bi))))
              return;
        if (rw == READ && mddev->degraded == 0 &&
            mddev->reshape_position == MaxSector) {
                bi = chunk_aligned_read(mddev, bi);
                if (!bi)
                        return;
        }
Will update all. Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help