Re: [PATCH 3/6] direct-io: do not merge logically non-contiguous requests

From: Mike Fedyk
Date: Fri May 21 2010 - 21:47:44 EST


On Fri, May 21, 2010 at 10:03 AM, Josef Bacik <josef@xxxxxxxxxx> wrote:
> Btrfs cannot handle having logically non-contiguous requests submitted. ÂFor
> example if you have
>
> Logical: Â[0-4095][HOLE][8192-12287]
> Physical: [0-4095] Â Â Â[4096-8191]
>
> Normally the DIO code would put these into the same BIO's. ÂThe problem is we
> need to know exactly what offset is associated with what BIO so we can do our
> checksumming and unlocking properly, so putting them in the same BIO doesn't
> work. ÂSo add another check where we submit the current BIO if the physical
> blocks are not contigous OR the logical blocks are not contiguous.
>
> Signed-off-by: Josef Bacik <josef@xxxxxxxxxx>
> ---
>
> V1->V2
> -Be more verbose in the in-code comment
>
> Âfs/direct-io.c | Â 20 ++++++++++++++++++--
> Â1 files changed, 18 insertions(+), 2 deletions(-)
>

Btrfs has been pretty much self-contained (working well compiled
against 2.6.32 for example). Is there a way that this wouldn't just
start silently breaking for people compiling the latest btrfs with
dkms against older kernels?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/