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

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

From: Christoph Hellwig <hch@lst.de>
Date: 2015-05-06 07:26:44
Also in: ceph-devel, dm-devel, lkml

-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 hunk ↗ jump to hunk
 {
 	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__?
+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.
 	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;
	}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help