]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: fix aio pwritev lost data problem.
authorSage Weil <sage@redhat.com>
Wed, 10 Jul 2019 15:36:50 +0000 (10:36 -0500)
committerSage Weil <sage@redhat.com>
Wed, 10 Jul 2019 15:36:50 +0000 (10:36 -0500)
commitcd646aad0a0179908f6906f8b9c67200354b00b0
tree11a01c7c5be35d1d4d229a38a8754df5d9bed7ce
parentb65c0062dce8b204d5f3407070348a0bea62b315
os/bluestore: fix aio pwritev lost data problem.

On Linux, write() (and similar system calls) will transfer at most
0x7ffff000 (2,147,479,552) bytes, it will cap data if aio pwritev
more than 0x7ffff000, so we have the split the data to more aio submit.

Signed-off-by: kungf <yang.wang@easystack.cn>
(cherry picked from commit 4d33114a40d5ae0d541c36175977ca22789a3b88)

# Conflicts:
# src/os/bluestore/KernelDevice.cc
- fd_direct vs choose_fd()
src/os/bluestore/KernelDevice.cc
src/os/bluestore/KernelDevice.h