summaryrefslogtreecommitdiffstats
path: root/mm/fremap.c
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2010-05-23 17:00:55 +0200
committerChris Mason <chris.mason@oracle.com>2010-05-25 16:34:55 +0200
commitfacd07b07d2a7988f5ce849558838cc953847637 (patch)
tree269200329390f450d2bc7f0858a8ed114a418374 /mm/fremap.c
parentfs: allow short direct-io reads to be completed via buffered IO (diff)
downloadlinux-facd07b07d2a7988f5ce849558838cc953847637.tar.xz
linux-facd07b07d2a7988f5ce849558838cc953847637.zip
direct-io: add a hook for the fs to provide its own submit_bio function
Because BTRFS can do RAID and such, we need our own submit hook so we can setup the bio's in the correct fashion, and handle checksum errors properly. So there are a few changes here 1) The submit_io hook. This is straightforward, just call this instead of submit_bio. 2) Allow the fs to return -ENOTBLK for reads. Usually this has only worked for writes, since writes can fallback onto buffered IO. But BTRFS needs the option of falling back on buffered IO if it encounters a compressed extent, since we need to read the entire extent in and decompress it. So if we get -ENOTBLK back from get_block we'll return back and fallback on buffered just like the write case. I've tested these changes with fsx and everything seems to work. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'mm/fremap.c')
0 files changed, 0 insertions, 0 deletions