On 29.01.2014 14:59, Stefan Hajnoczi wrote:
On Wed, Jan 29, 2014 at 09:50:20AM +0100, Peter Lieven wrote:
This adds v6 of the NFS protocol driver + qemu-iotest adjustments.
v6->v7:
- removed unsused and partially non-existing libnfs header file includes
[Stefan]
- adjusted usage of qemu_opts_create_nofail [Stefan]
- removed patch to fix output of qemu-iotest 067
- only blacklist qemu-iotest 020 for NFS do not change proto from generic to
file [Fam]
It compiles now but I can't create an image on my /home NFS export:
$ ./qemu-img create -f qcow2
'nfs://127.0.0.1/home/stefanha/qemu/test-nfs.img?uid=1000&gid=1000' 8G
Formatting 'nfs://127.0.0.1/home/stefanha/qemu/test-nfs.img?uid=1000&gid=1000',
fmt=qcow2 size=8589934592 encryption=off cluster_size=65536 lazy_refcounts=off
qemu-img: nfs://127.0.0.1/home/stefanha/qemu/test-nfs.img?uid=1000&gid=1000:
Failed to create file: nfs_creat_async failed
I added printfs to the code, block/nfs.c is mounting /home/stefanha/qemu
and tries to create the file /test-nfs.img.
I'm using the Linux kernel NFS server. Unfortunately I don't have more
time to debug this but I'd like to test this feature successfully before
merging it into QEMU. Any ideas why libnfs refuses to create the file?
(It's failing in nfs_lookuppath_async() with "Path is empty".)
Ronnie: libnfs clobbers the nfs->rpc error string so you cannot see the
detailed error message:
In this case nfs_creat() clobbers the error with "Failed to create file:
nfs_creat_async failed". In fact the message was "Out of memory: failed
to start parsing the path components" from nfs_creat_async(), but that's
clobbering the true error too. It really should be "Path is empty" from
nfs_lookuppath_async().
It seems the version in Ronnies repository got broken somewhere after
my commit d43a8953f5. Can you try with:
https://github.com/plieven/libnfs
Thanks,
Peter