Add CAS version parameter to the C wrapper

This commit is contained in:
Vitaliy Filippov
2021-06-19 01:00:52 +03:00
parent 511a89948b
commit 6ca8afffe5
4 changed files with 48 additions and 27 deletions
+10 -5
View File
@@ -186,10 +186,10 @@ static struct fio_option options[] = {
},
};
static void watch_callback(long retval, void *opaque)
static void watch_callback(void *opaque, long watch)
{
struct sec_data *bsd = (struct sec_data*)opaque;
bsd->watch = (void*)retval;
bsd->watch = (void*)watch;
}
static int sec_setup(struct thread_data *td)
@@ -274,7 +274,7 @@ static int sec_init(struct thread_data *td)
return 0;
}
static void io_callback(long retval, void *opaque)
static void io_callback(void *opaque, long retval)
{
struct io_u *io = (struct io_u*)opaque;
io->error = retval < 0 ? -retval : 0;
@@ -288,6 +288,11 @@ static void io_callback(long retval, void *opaque)
}
}
static void read_callback(void *opaque, long retval, uint64_t version)
{
io_callback(opaque, retval);
}
/* Begin read or write request. */
static enum fio_q_status sec_queue(struct thread_data *td, struct io_u *io)
{
@@ -310,7 +315,7 @@ static enum fio_q_status sec_queue(struct thread_data *td, struct io_u *io)
{
case DDIR_READ:
iov = { .iov_base = io->xfer_buf, .iov_len = io->xfer_buflen };
vitastor_c_read(bsd->cli, inode, io->offset, io->xfer_buflen, &iov, 1, io_callback, io);
vitastor_c_read(bsd->cli, inode, io->offset, io->xfer_buflen, &iov, 1, read_callback, io);
bsd->last_sync = false;
break;
case DDIR_WRITE:
@@ -320,7 +325,7 @@ static enum fio_q_status sec_queue(struct thread_data *td, struct io_u *io)
return FIO_Q_COMPLETED;
}
iov = { .iov_base = io->xfer_buf, .iov_len = io->xfer_buflen };
vitastor_c_write(bsd->cli, inode, io->offset, io->xfer_buflen, &iov, 1, io_callback, io);
vitastor_c_write(bsd->cli, inode, io->offset, io->xfer_buflen, 0, &iov, 1, io_callback, io);
bsd->last_sync = false;
break;
case DDIR_SYNC: