mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
qga-win: add support for qmp_guest_fsfreeze_freeze_list
This patch add support for freeze specified fs. The valid mountpoints list member are [1]: The path of a mounted folder, for example, Y:\MountX\ A drive letter, for example, D:\ A volume GUID path of the form \\?\Volume{GUID}\, where GUID identifies the volume A UNC path that specifies a remote file share, for example, \\Clusterx\Share1\ [1] https://docs.microsoft.com/en-us/windows/desktop/api/vsbackup/nf-vsbackup-ivssbackupcomponents-addtosnapshotset Cc: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
bad0227d3a
commit
0692b03ee1
6 changed files with 91 additions and 45 deletions
|
@ -790,6 +790,13 @@ GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **errp)
|
|||
* The frozen state is limited for up to 10 seconds by VSS.
|
||||
*/
|
||||
int64_t qmp_guest_fsfreeze_freeze(Error **errp)
|
||||
{
|
||||
return qmp_guest_fsfreeze_freeze_list(false, NULL, errp);
|
||||
}
|
||||
|
||||
int64_t qmp_guest_fsfreeze_freeze_list(bool has_mountpoints,
|
||||
strList *mountpoints,
|
||||
Error **errp)
|
||||
{
|
||||
int i;
|
||||
Error *local_err = NULL;
|
||||
|
@ -804,7 +811,7 @@ int64_t qmp_guest_fsfreeze_freeze(Error **errp)
|
|||
/* cannot risk guest agent blocking itself on a write in this state */
|
||||
ga_set_frozen(ga_state);
|
||||
|
||||
qga_vss_fsfreeze(&i, true, &local_err);
|
||||
qga_vss_fsfreeze(&i, true, mountpoints, &local_err);
|
||||
if (local_err) {
|
||||
error_propagate(errp, local_err);
|
||||
goto error;
|
||||
|
@ -822,15 +829,6 @@ error:
|
|||
return 0;
|
||||
}
|
||||
|
||||
int64_t qmp_guest_fsfreeze_freeze_list(bool has_mountpoints,
|
||||
strList *mountpoints,
|
||||
Error **errp)
|
||||
{
|
||||
error_setg(errp, QERR_UNSUPPORTED);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Thaw local file systems using Volume Shadow-copy Service.
|
||||
*/
|
||||
|
@ -843,7 +841,7 @@ int64_t qmp_guest_fsfreeze_thaw(Error **errp)
|
|||
return 0;
|
||||
}
|
||||
|
||||
qga_vss_fsfreeze(&i, false, errp);
|
||||
qga_vss_fsfreeze(&i, false, NULL, errp);
|
||||
|
||||
ga_unset_frozen(ga_state);
|
||||
return i;
|
||||
|
@ -1660,7 +1658,6 @@ GList *ga_command_blacklist_init(GList *blacklist)
|
|||
"guest-set-vcpus",
|
||||
"guest-get-memory-blocks", "guest-set-memory-blocks",
|
||||
"guest-get-memory-block-size",
|
||||
"guest-fsfreeze-freeze-list",
|
||||
NULL};
|
||||
char **p = (char **)list_unsupported;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue