diff options
author | 2016-11-08 21:54:34 +0800 | |
---|---|---|
committer | 2016-12-12 23:54:27 +0100 | |
commit | 7ce469a53e7106acdaca2e25027941d0f7c12a8e (patch) | |
tree | 81864fb541f3ba5eb6080823d961addc87053955 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | ceph: try getting buffer capability for readahead/fadvise (diff) | |
download | linux-dev-7ce469a53e7106acdaca2e25027941d0f7c12a8e.tar.xz linux-dev-7ce469a53e7106acdaca2e25027941d0f7c12a8e.zip |
ceph: fix splice read for no Fc capability case
When iov_iter type is ITER_PIPE, copy_page_to_iter() increases
the page's reference and add the page to a pipe_buffer. It also
set the pipe_buffer's ops to page_cache_pipe_buf_ops. The comfirm
callback in page_cache_pipe_buf_ops expects the page is from page
cache and uptodate, otherwise it return error.
For ceph_sync_read() case, pages are not from page cache. So we
can't call copy_page_to_iter() when iov_iter type is ITER_PIPE.
The fix is using iov_iter_get_pages_alloc() to allocate pages
for the pipe. (the code is similar to default_file_splice_read)
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions