[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-stable] [PATCH] cpus: Let vm_stop[_force_state]() always flush
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-stable] [PATCH] cpus: Let vm_stop[_force_state]() always flush block devices |
Date: |
Thu, 18 Jul 2013 14:55:48 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 18.07.2013 um 14:52 hat Kevin Wolf geschrieben:
> Even if the VM is already stopped, we cannot assume that all data has
> already been successfully flushed to disk. The flush during the previous
> vm_stop() could have failed.
>
> Run bdrv_flush_all() unconditionally so that we get an error each time
> if the block device isn't really flushed.
>
Oops, forgot it again:
Cc: address@hidden
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> cpus.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/cpus.c b/cpus.c
> index 8062cdd..2509eb5 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -443,11 +443,12 @@ static int do_vm_stop(RunState state)
> pause_all_vcpus();
> runstate_set(state);
> vm_state_notify(0, state);
> - bdrv_drain_all();
> - ret = bdrv_flush_all();
> monitor_protocol_event(QEVENT_STOP, NULL);
> }
>
> + bdrv_drain_all();
> + ret = bdrv_flush_all();
> +
> return ret;
> }
>
> @@ -1126,7 +1127,9 @@ int vm_stop_force_state(RunState state)
> return vm_stop(state);
> } else {
> runstate_set(state);
> - return 0;
> + /* Make sure to return an error if the flush in a previous vm_stop()
> + * failed. */
> + return bdrv_flush_all();
> }
> }
>
> --
> 1.8.1.4
>
- Re: [Qemu-stable] [PATCH] cpus: Let vm_stop[_force_state]() always flush block devices,
Kevin Wolf <=