| From d5689766da7a166a7c6cda5b808fea127f7b845a Mon Sep 17 00:00:00 2001 |
| From: Ronnie Sahlberg <ronniesahlberg@gmail.com> |
| Date: Sun, 26 Jan 2025 12:59:45 +1000 |
| Subject: [PATCH] nfs: Add support for libnfs v2 api |
| |
| Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com> |
| |
| 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 |
| |
| |
| @@ -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 |
| |