Is anyone planning to pick this up and turn it into a formal patch for QEMU ? We're hitting this breakage again in Fedora with libnfs6 and its also hit homebrew and probably other distros too.
On Sun, Dec 15, 2024 at 12:52:47PM +1000, ronnie sahlberg wrote: > Maybe something like this: > --- > 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); > } > --- With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|