On Fri, Dec 13, 2024 at 05:03:55PM +0100, Paolo Bonzini wrote: > On 12/13/24 16:51, Richard W.M. Jones wrote: > >The libnfs asynch API has changed type signature in this new version. > >This change breaks qemu and it wasn't immediately obvious to me how to > >fix it. In particular the new API requires a buffer to be passed, but > >it's unclear what that would be. > > > >Old signature: > > > >EXTERN int nfs_pread_async(struct nfs_context *nfs, struct nfsfh *nfsfh, > > uint64_t offset, uint64_t count, nfs_cb cb, > > void *private_data); > > > >New signature: > > > >EXTERN int nfs_pread_async(struct nfs_context *nfs, struct nfsfh *nfsfh, > > void *buf, size_t count, uint64_t offset, > > nfs_cb cb, void *private_data); > > > >(Similar changes are made to pwrite_async) > > Looks like the buffer used to be allocated by libnfs and passed to > nfs_co_generic_cb: > > static void > nfs_co_generic_cb(int ret, struct nfs_context *nfs, void *data, > void *private_data) > > Now it has to be allocated by the application. > > (upstream commit https://github.com/sahlberg/libnfs/commit/5e8f7ce273308) > > >I guess this needs upstream qemu attention. > > And should it also block the libnfs update in Fedora, since QEMU is a > critical package?
The update is currently in a side tag. See the start of this thread here: https://lists.fedoraproject.org/archives/list/de...@lists.fedoraproject.org/thread/LEEKOAGHD2WTSFJ5BT55F4MCDR2KZ7CF/ If there's a fix soon we can easily add it to Fedora. Another problem is how (or if) you want to make qemu compile with both the old & new versions of libnfs. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com nbdkit - Flexible, fast NBD server with plugins https://gitlab.com/nbdkit/nbdkit