summaryrefslogtreecommitdiffstats
path: root/block/nfs.c
diff options
context:
space:
mode:
authorPaolo Bonzini2017-06-05 14:38:54 +0200
committerFam Zheng2017-06-16 01:55:00 +0200
commite2a6ae7fe57c17199624e4d47826ec46ca57d546 (patch)
tree081efb61697d284b83fdf40c31195c8da0ac425e /block/nfs.c
parentblock: access serialising_in_flight with atomic ops (diff)
downloadqemu-e2a6ae7fe57c17199624e4d47826ec46ca57d546.tar.gz
qemu-e2a6ae7fe57c17199624e4d47826ec46ca57d546.tar.xz
qemu-e2a6ae7fe57c17199624e4d47826ec46ca57d546.zip
block: access wakeup with atomic ops
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20170605123908.18777-6-pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
Diffstat (limited to 'block/nfs.c')
-rw-r--r--block/nfs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/nfs.c b/block/nfs.c
index 848b2c0bb0..18c87d2f25 100644
--- a/block/nfs.c
+++ b/block/nfs.c
@@ -730,7 +730,9 @@ nfs_get_allocated_file_size_cb(int ret, struct nfs_context *nfs, void *data,
if (task->ret < 0) {
error_report("NFS Error: %s", nfs_get_error(nfs));
}
- task->complete = 1;
+
+ /* Set task->complete before reading bs->wakeup. */
+ atomic_mb_set(&task->complete, 1);
bdrv_wakeup(task->bs);
}