diff options
| author | Josef Bacik <[email protected]> | 2010-05-23 15:00:54 +0000 |
|---|---|---|
| committer | Chris Mason <[email protected]> | 2010-05-25 14:34:55 +0000 |
| commit | 66f998f611897319b555364cefd5d6e88a205866 (patch) | |
| tree | 3d2a46624bf6cf1ea1645cc8dad975af858dc114 /fs/btrfs/async-thread.c | |
| parent | Btrfs: Metadata ENOSPC handling for balance (diff) | |
| download | kernel-66f998f611897319b555364cefd5d6e88a205866.tar.gz kernel-66f998f611897319b555364cefd5d6e88a205866.zip | |
fs: allow short direct-io reads to be completed via buffered IO
This is similar to what already happens in the write case. If we have a short
read while doing O_DIRECT, instead of just returning, fallthrough and try to
read the rest via buffered IO. BTRFS needs this because if we encounter a
compressed or inline extent during DIO, we need to fallback on buffered. If the
extent is compressed we need to read the entire thing into memory and
de-compress it into the users pages. I have tested this with fsx and everything
works great. Thanks,
Signed-off-by: Josef Bacik <[email protected]>
Signed-off-by: Chris Mason <[email protected]>
Diffstat (limited to 'fs/btrfs/async-thread.c')
0 files changed, 0 insertions, 0 deletions
