ec0f694c11
To use the online disk snapshot for online-backup, application-level consistency of the snapshot image is required. However, currently the guest agent can provide only filesystem-level consistency, and the snapshot may contain dirty data, for example, incomplete transactions. This patch provides the opportunity to quiesce applications before snapshot is taken. If --fsfreeze-hook option is specified, the hook is executed with "freeze" argument before the filesystem is frozen by fsfreeze-freeze command. As for fsfreeze-thaw command, the hook is executed with "thaw" argument after the filesystem is thawed. This patch depends on patchset to improve error reporting by Luiz Capitulino: http://lists.gnu.org/archive/html/qemu-devel/2012-11/msg03016.html Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama.qu@hitachi.com> Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> *clarified usage in help output Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
42 lines
1.2 KiB
C
42 lines
1.2 KiB
C
/*
|
|
* QEMU Guest Agent core declarations
|
|
*
|
|
* Copyright IBM Corp. 2011
|
|
*
|
|
* Authors:
|
|
* Adam Litke <aglitke@linux.vnet.ibm.com>
|
|
* Michael Roth <mdroth@linux.vnet.ibm.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
* See the COPYING file in the top-level directory.
|
|
*/
|
|
#include "qapi/qmp/dispatch.h"
|
|
#include "qemu-common.h"
|
|
|
|
#define QGA_READ_COUNT_DEFAULT 4096
|
|
|
|
typedef struct GAState GAState;
|
|
typedef struct GACommandState GACommandState;
|
|
extern GAState *ga_state;
|
|
|
|
void ga_command_state_init(GAState *s, GACommandState *cs);
|
|
void ga_command_state_add(GACommandState *cs,
|
|
void (*init)(void),
|
|
void (*cleanup)(void));
|
|
void ga_command_state_init_all(GACommandState *cs);
|
|
void ga_command_state_cleanup_all(GACommandState *cs);
|
|
GACommandState *ga_command_state_new(void);
|
|
bool ga_logging_enabled(GAState *s);
|
|
void ga_disable_logging(GAState *s);
|
|
void ga_enable_logging(GAState *s);
|
|
void slog(const gchar *fmt, ...);
|
|
void ga_set_response_delimited(GAState *s);
|
|
bool ga_is_frozen(GAState *s);
|
|
void ga_set_frozen(GAState *s);
|
|
void ga_unset_frozen(GAState *s);
|
|
const char *ga_fsfreeze_hook(GAState *s);
|
|
|
|
#ifndef _WIN32
|
|
void reopen_fd_to_null(int fd);
|
|
#endif
|