diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2017-06-05 14:38:54 +0200 |
---|---|---|
committer | Fam Zheng <famz@redhat.com> | 2017-06-16 07:55:00 +0800 |
commit | e2a6ae7fe57c17199624e4d47826ec46ca57d546 (patch) | |
tree | 081efb61697d284b83fdf40c31195c8da0ac425e /block/sheepdog.c | |
parent | 20fc71b25cfd8102b7f12a2b44133894ad90040a (diff) | |
download | qemu-e2a6ae7fe57c17199624e4d47826ec46ca57d546.zip qemu-e2a6ae7fe57c17199624e4d47826ec46ca57d546.tar.gz qemu-e2a6ae7fe57c17199624e4d47826ec46ca57d546.tar.bz2 |
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/sheepdog.c')
-rw-r--r-- | block/sheepdog.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/block/sheepdog.c b/block/sheepdog.c index a18315a..5ebf5d9 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -698,7 +698,8 @@ out: srco->co = NULL; srco->ret = ret; - srco->finished = true; + /* Set srco->finished before reading bs->wakeup. */ + atomic_mb_set(&srco->finished, true); if (srco->bs) { bdrv_wakeup(srco->bs); } |