#include "smbd/globals.h"
#include "lib/util/tevent_unix.h"
#include "lib/util/sys_rw.h"
+#include "lib/util/iov_buf.h"
#include "smbprofile.h"
#include <liburing.h>
{
struct vfs_io_uring_pread_state *state = tevent_req_data(
cur->req, struct vfs_io_uring_pread_state);
+ struct iovec *iov = &state->iov;
+ int num_iov = 1;
+ bool ok;
/*
* We rely on being inside the _send() function
return;
}
+ ok = iov_advance(&iov, &num_iov, cur->cqe.res);
+ if (!ok) {
+ /* This is not expected! */
+ DBG_ERR("iov_advance() failed cur->cqe.res=%d > iov_len=%d\n",
+ (int)cur->cqe.res,
+ (int)state->iov.iov_len);
+ tevent_req_error(cur->req, EIO);
+ return;
+ }
+
state->nread = state->ur.cqe.res;
tevent_req_done(cur->req);
}