From d5689766da7a166a7c6cda5b808fea127f7b845a Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Sun, 26 Jan 2025 12:59:45 +1000 Subject: [PATCH] nfs: Add support for libnfs v2 api Signed-off-by: Ronnie Sahlberg --- block/nfs.c | 15 ++++++++++++++- meson.build | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/block/nfs.c b/block/nfs.c index 7d34b58750..163e126b11 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.47.1