Messages in this thread | | | From | OGAWA Hirofumi <> | Subject | Re: Mount ext3 with barrier=1 doesn't send real barrier bio? | Date | Fri, 22 Aug 2008 07:23:50 +0900 |
| |
Eric Sandeen <sandeen@sandeen.net> writes:
>> --- a/fs/buffer.c >> +++ b/fs/buffer.c >> @@ -2926,16 +2926,16 @@ int submit_bh(int rw, struct buffer_head * bh) >> BUG_ON(!buffer_mapped(bh)); >> BUG_ON(!bh->b_end_io); >> >> - if (buffer_ordered(bh) && (rw == WRITE)) >> - rw = WRITE_BARRIER; >> - >> /* >> * Only clear out a write error when rewriting, should this >> * include WRITE_SYNC as well? >> */ >> - if (test_set_buffer_req(bh) && (rw == WRITE || rw == WRITE_BARRIER)) >> + if (test_set_buffer_req(bh) && rw == WRITE) >> clear_buffer_write_io_error(bh);
This should be ((rw & RW_MASK) == WRITE) too? Anyway, this seems change behavior of submit_bh(WRITE_BARRIER) (maybe reiserfs only), it wouldn't be your intent...
>> + if (buffer_ordered(bh) && ((rw & RW_MASK) == WRITE)) >> + rw |= (1 << BIO_RW_BARRIER); >> + >> /* >> * from here on down, it's all bio -- do the initial mapping, >> * submit_bio -> generic_make_request may further map this bio around -- OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
| |