[libvirt] [PATCH] storage: Flush host cache after write

Eric Blake eblake at redhat.com
Thu Aug 18 13:55:56 UTC 2011


On 08/18/2011 07:44 AM, Michal Privoznik wrote:
> Although we are flushing cache after some critical writes (e.g.
> volume creation), after some others we do not (e.g. volume cloning).
> This patch fix this issue. That is for volume cloning, writing
> header of logical volume, and storage wipe.
> ---
>   src/storage/storage_backend.c         |    8 ++++++++
>   src/storage/storage_backend_logical.c |    7 +++++++
>   src/storage/storage_driver.c          |    8 ++++++++
>   3 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
> index 6243d1e..889f530 100644
> --- a/src/storage/storage_backend.c
> +++ b/src/storage/storage_backend.c
> @@ -208,6 +208,14 @@ virStorageBackendCopyToFD(virStorageVolDefPtr vol,
>           } while ((amtleft -= interval)>  0);
>       }
>
> +    if (fdatasync(fd)<  0) {

Why fdatasync here,


> +++ b/src/storage/storage_backend_logical.c
> @@ -424,6 +424,13 @@ virStorageBackendLogicalBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
>               VIR_FORCE_CLOSE(fd);
>               goto cleanup;
>           }
> +        if (fsync(fd)<  0) {

but only fsync here?

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list