Thread (1 message) 1 message, 1 author, 2012-07-30

Re: [RFC PATCH] fs/direct-io.c: Set bi_rw when alloc bio.

From: Jeff Moyer <hidden>
Date: 2012-07-30 13:31:37
Also in: linux-fsdevel, lkml

majianpeng [off-list ref] writes:
On 2012-07-27 22:21 Jeff Moyer [off-list ref] Wrote:
quoted
majianpeng [off-list ref] writes:
quoted
When exec bio_alloc, the bi_rw is zero.But after calling bio_add_page,
it will use bi_rw.
Fox example, in functiion __bio_add_page,it will call merge_bvec_fn().
The merge_bvec_fn of raid456 will use the bi_rw to judge the merge.
quoted
quoted
if ((bvm->bi_rw & 1) == WRITE)
	return biovec->bv_len; /* always allow writes to be mergeable */
Signed-off-by: Jianpeng Ma <redacted>
Good catch.  How did you find this?  Did you experience data corruption
as a result of this oversight, reduced performance due to missed merge
opportunities, or did you just notice it in reviewing the code?

Reviewed-by: Jeff Moyer <redacted>
Sorry for late to reply. When i analysed the performance of raid5, i found this bug.
OK, thanks.  In the future, it would be good to include that information
in the patch description.

Cheers,
Jeff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help