Skip to content

Commit

Permalink
ceph: Asynchronous IO support
Browse files Browse the repository at this point in the history
The basic idea of AIO support is simple, just call kiocb::ki_complete()
in OSD request's complete callback. But there are several special cases.

when IO span multiple objects, we need to wait until all OSD requests
are complete, then call kiocb::ki_complete(). Error handling in this case
is tricky too. For simplify, AIO both span multiple objects and extends
i_size are not allowed.

Another special case is check EOF for reading (other client can write to
the file and extend i_size concurrently). For simplify, the direct-IO/AIO
code path does do the check, fallback to normal syn read instead.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
  • Loading branch information
Yan, Zheng authored and Ilya Dryomov committed Jan 21, 2016
1 parent 458c470 commit c8fe9b1
Showing 1 changed file with 278 additions and 119 deletions.
Loading

0 comments on commit c8fe9b1

Please sign in to comment.