From 60ff2ae2a21ddc11cc7284194a3013ff864ac03c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Thu, 15 Apr 2021 14:28:16 +0100 Subject: block: add trace point when fdatasync fails MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A flush failure is a critical failure scenario for some operations. For example, it will prevent migration from completing, as it will make vm_stop() report an error. Thus it is important to have a trace point present for debugging. Reviewed-by: Connor Kuehl Reviewed-by: Dr. David Alan Gilbert Signed-off-by: Daniel P. Berrangé --- block/file-posix.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'block/file-posix.c') diff --git a/block/file-posix.c b/block/file-posix.c index 5ff78ecb34..4189b2bfa6 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -1338,6 +1338,8 @@ static int handle_aiocb_flush(void *opaque) ret = qemu_fdatasync(aiocb->aio_fildes); if (ret == -1) { + trace_file_flush_fdatasync_failed(errno); + /* There is no clear definition of the semantics of a failing fsync(), * so we may have to assume the worst. The sad truth is that this * assumption is correct for Linux. Some pages are now probably marked -- cgit v1.2.3