block/nfs: fix mutex assertion in nfs_file_close()
commit113fe792fd4931dd0538f03859278b8719ee4fa2
authorJeff Cody <jcody@redhat.com>
Mon, 7 Aug 2017 22:29:09 +0000 (7 18:29 -0400)
committerKevin Wolf <kwolf@redhat.com>
Tue, 8 Aug 2017 13:19:16 +0000 (8 15:19 +0200)
tree48064249926a702c1d7181e1406957573215acb7
parentea22b7a2207721695342063175212c5be76d5c69
block/nfs: fix mutex assertion in nfs_file_close()

Commit c096358e747e88fc7364e40e3c354ee0bb683960 introduced assertion
checks for when qemu_mutex() functions are called without the
corresponding qemu_mutex_init() having initialized the mutex.

This uncovered a latent bug in qemu's nfs driver - in
nfs_client_close(), the NFSClient structure is overwritten with zeros,
prior to the mutex being destroyed.

Go ahead and destroy the mutex in nfs_client_close(), and change where
we call qemu_mutex_init() so that it is correctly balanced.

There are also a couple of memory leaks obscured by the memset, so this
fixes those as well.

Finally, we should be able to get rid of the memset(), as it isn't
necessary.

Cc: qemu-stable@nongnu.org
Signed-off-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/nfs.c