From 379565f41b2b2ddf50c162a917405244d2f992f2 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Sun, 26 Jan 2025 12:59:45 +1000 Subject: [PATCH 2/8] nfs: Add support for libnfs v2 api Signed-off-by: Ronnie Sahlberg --- block/nfs.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/block/nfs.c b/block/nfs.c index 0500f60c08..f768ee0c4b 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -268,11 +268,18 @@ static int coroutine_fn nfs_co_preadv(BlockDriverState *bs, int64_t offset, NFSRPC task; nfs_co_init_task(bs, &task); - task.iov = iov; WITH_QEMU_LOCK_GUARD(&client->mutex) { +#ifdef LIBNFS_API_V2 + if (nfs_pread_async(client->context, client->fh, + iov->iov[0].iov_base, + bytes > iov->iov[0].iov_len ? iov->iov[0].iov_len : bytes, + offset, nfs_co_generic_cb, &task) != 0) { +#else + task.iov = iov; if (nfs_pread_async(client->context, client->fh, offset, bytes, nfs_co_generic_cb, &task) != 0) { +#endif return -ENOMEM; } @@ -317,9 +324,15 @@ static int coroutine_fn nfs_co_pwritev(BlockDriverState *bs, int64_t offset, } WITH_QEMU_LOCK_GUARD(&client->mutex) { +#ifdef LIBNFS_API_V2 + if (nfs_pwrite_async(client->context, client->fh, + buf, bytes, offset, + nfs_co_generic_cb, &task) != 0) { +#else if (nfs_pwrite_async(client->context, client->fh, offset, bytes, buf, nfs_co_generic_cb, &task) != 0) { +#endif if (my_buffer) { g_free(buf); } -- 2.48.1