recent libnfs versions support logging debug messages. Add support for it in qemu through an URL parameter.
Example: qemu -cdrom nfs://127.0.0.1/iso/my.iso?debug=2 Signed-off-by: Peter Lieven <p...@kamp.de> --- v4->v5: add a comment in the code why we limit the debug level [Stefan] v3->v4: revert to the initial version, but limit max debug level v2->v3: use a per-drive option instead of a global one. [Stefan] v1->v2: reworked patch to accept the debug level as a cmdline parameter instead of an URI parameter [Stefan] block/nfs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/block/nfs.c b/block/nfs.c index fd79f89..ab1e267 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -36,6 +36,7 @@ #include <nfsc/libnfs.h> #define QEMU_NFS_MAX_READAHEAD_SIZE 1048576 +#define QEMU_NFS_MAX_DEBUG_LEVEL 2 typedef struct NFSClient { struct nfs_context *context; @@ -334,6 +335,17 @@ static int64_t nfs_client_open(NFSClient *client, const char *filename, } nfs_set_readahead(client->context, val); #endif +#ifdef LIBNFS_FEATURE_DEBUG + } else if (!strcmp(qp->p[i].name, "debug")) { + /* limit the maximum debug level to avoid potential flooding + * of our log files. */ + if (val > QEMU_NFS_MAX_DEBUG_LEVEL) { + error_report("NFS Warning: Limiting NFS debug level" + " to %d", QEMU_NFS_MAX_DEBUG_LEVEL); + val = QEMU_NFS_MAX_DEBUG_LEVEL; + } + nfs_set_debug(client->context, val); +#endif } else { error_setg(errp, "Unknown NFS parameter name: %s", qp->p[i].name); -- 1.9.1