Messages in this thread | | | Date | Mon, 19 Sep 2011 15:31:49 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] fs/direct-io.c: Calcuate fs_count correctly in get_more_blocks. |
| |
On Mon, 19 Sep 2011 16:25:39 +0800 Tao Ma <tm@tao.ma> wrote:
> In get_more_blocks, we use dio_count to calcuate fs_count and do some > tricky things to increase fs_count if dio_count isn't aligned. But > actually it still has some cornor case that can't be coverd. See the > following example: > ./dio_write foo -s 1024 -w 4096(direct write 4096 bytes at offset 1024). > The same goes if the offset isn't aligned to fs_blocksize. > > In this case, the old calculation counts fs_count to be 1, but actually > we will write into 2 different blocks(if fs_blocksize=4096). The old code > just works, since it will call get_block twice(and may have to allocate > and create extent twice for file systems like ext4). So we'd better call > get_block just once with the proper fs_count.
Has this been carefully tested with more than just ext4? If so, which?
Thanks.
| |