Commit
4ae922413844 ("vfs_ceph_new: use libcephfs nonblocking API for
async-io ops") uses ceph_ll_nonblocking_readv_writev for fsync_send.
However, the actual behaviour of libcephfs when using this API with
'fsync=true' is not async-fsync, as one may assume. Instead,
vfs_ceph_new should use a nonblocking fsync API[1], once it is ready.
Removed the usage of ceph_ll_nonblocking_readv_writev for fsync.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=15919
[1] https://github.com/ceph/ceph/commit/
c88a21c30d8b265adb152f631d2629d29539f7b7
Signed-off-by: Shachar Sharon <ssharon@redhat.com>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Reviewed-by: Xavi Hernandez <xhernandez@redhat.com>
Reviewed-by: Guenther Deschner <gd@samba.org>
SMBPROFILE_BYTES_ASYNC_SET_IDLE_X(state->profile_bytes,
state->profile_bytes_x);
-#if HAVE_CEPH_ASYNCIO
- state->req = req;
- state->data = NULL;
- state->len = 0;
- state->off = 0;
- state->fsync = true;
- vfs_ceph_aio_submit(handle, req, ev);
- return req;
-#endif
-
vfs_ceph_aio_start(state);
ret = vfs_ceph_ll_fsync(handle, state->cfh, false);
vfs_ceph_aio_finish(state, ret);