Currently we rely on fsfreeze/thaw commands disabling/enabling logging then having other commands check whether logging is disabled to avoid executing if they aren't safe for running while a filesystem is frozen. Instead, have an explicit whitelist of fsfreeze-safe commands, and consolidate logging and command enablement/disablement into a pair of helper functions: ga_set_frozen()/ga_unset_frozen() Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 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-core.h"
 | 
						|
#include "qemu-common.h"
 | 
						|
 | 
						|
#define QGA_VERSION "1.0"
 | 
						|
#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);
 |