* [PATCH 0/2] savevm: Delete stale snapshots in save_snapshot() @ 2020-12-08 6:53 Tuguoyi 2020-12-08 6:53 ` [PATCH 1/2] savevm: Remove dead code " Tuguoyi 2020-12-08 6:53 ` [PATCH 2/2] savevm: Delete snapshots just created in case of error Tuguoyi 0 siblings, 2 replies; 7+ messages in thread From: Tuguoyi @ 2020-12-08 6:53 UTC (permalink / raw) To: Juan Quintela, Dr. David Alan Gilbert; +Cc: tuguoyi, qemu-devel, Tuguoyi These two patches just clear dead code and delete stale snapshots in case of error in save_snapshot() Tuguoyi (2): savevm: Remove dead code in save_snapshot() savevm: Delete snapshots just created in case of error migration/savevm.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] savevm: Remove dead code in save_snapshot() 2020-12-08 6:53 [PATCH 0/2] savevm: Delete stale snapshots in save_snapshot() Tuguoyi @ 2020-12-08 6:53 ` Tuguoyi 2020-12-17 15:27 ` Dr. David Alan Gilbert 2020-12-08 6:53 ` [PATCH 2/2] savevm: Delete snapshots just created in case of error Tuguoyi 1 sibling, 1 reply; 7+ messages in thread From: Tuguoyi @ 2020-12-08 6:53 UTC (permalink / raw) To: Juan Quintela, Dr. David Alan Gilbert; +Cc: tuguoyi, qemu-devel, Tuguoyi The snapshot in each bs is deleted at the beginning, so there is no need to find the snapshot again. Signed-off-by: Tuguoyi <tu.guoyi@h3c.com> --- migration/savevm.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 5f937a2..601b514 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2728,7 +2728,7 @@ int qemu_load_device_state(QEMUFile *f) int save_snapshot(const char *name, Error **errp) { BlockDriverState *bs, *bs1; - QEMUSnapshotInfo sn1, *sn = &sn1, old_sn1, *old_sn = &old_sn1; + QEMUSnapshotInfo sn1, *sn = &sn1; int ret = -1, ret2; QEMUFile *f; int saved_vm_running; @@ -2797,13 +2797,7 @@ int save_snapshot(const char *name, Error **errp) } if (name) { - ret = bdrv_snapshot_find(bs, old_sn, name); - if (ret >= 0) { - pstrcpy(sn->name, sizeof(sn->name), old_sn->name); - pstrcpy(sn->id_str, sizeof(sn->id_str), old_sn->id_str); - } else { - pstrcpy(sn->name, sizeof(sn->name), name); - } + pstrcpy(sn->name, sizeof(sn->name), name); } else { /* cast below needed for OpenBSD where tv_sec is still 'long' */ localtime_r((const time_t *)&tv.tv_sec, &tm); -- 2.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] savevm: Remove dead code in save_snapshot() 2020-12-08 6:53 ` [PATCH 1/2] savevm: Remove dead code " Tuguoyi @ 2020-12-17 15:27 ` Dr. David Alan Gilbert 2020-12-17 16:14 ` Denis V. Lunev 0 siblings, 1 reply; 7+ messages in thread From: Dr. David Alan Gilbert @ 2020-12-17 15:27 UTC (permalink / raw) To: Tuguoyi, den, berrange; +Cc: tuguoyi, qemu-devel, Juan Quintela * Tuguoyi (tu.guoyi@h3c.com) wrote: > The snapshot in each bs is deleted at the beginning, so there is no need > to find the snapshot again. > > Signed-off-by: Tuguoyi <tu.guoyi@h3c.com> This looks OK to me, becoming redundant after Denis's 0b46160 - but I don't know the snapshot code much; Denis - do you agree this is correct? Dave > --- > migration/savevm.c | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) > > diff --git a/migration/savevm.c b/migration/savevm.c > index 5f937a2..601b514 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -2728,7 +2728,7 @@ int qemu_load_device_state(QEMUFile *f) > int save_snapshot(const char *name, Error **errp) > { > BlockDriverState *bs, *bs1; > - QEMUSnapshotInfo sn1, *sn = &sn1, old_sn1, *old_sn = &old_sn1; > + QEMUSnapshotInfo sn1, *sn = &sn1; > int ret = -1, ret2; > QEMUFile *f; > int saved_vm_running; > @@ -2797,13 +2797,7 @@ int save_snapshot(const char *name, Error **errp) > } > > if (name) { > - ret = bdrv_snapshot_find(bs, old_sn, name); > - if (ret >= 0) { > - pstrcpy(sn->name, sizeof(sn->name), old_sn->name); > - pstrcpy(sn->id_str, sizeof(sn->id_str), old_sn->id_str); > - } else { > - pstrcpy(sn->name, sizeof(sn->name), name); > - } > + pstrcpy(sn->name, sizeof(sn->name), name); > } else { > /* cast below needed for OpenBSD where tv_sec is still 'long' */ > localtime_r((const time_t *)&tv.tv_sec, &tm); > -- > 2.7.4 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] savevm: Remove dead code in save_snapshot() 2020-12-17 15:27 ` Dr. David Alan Gilbert @ 2020-12-17 16:14 ` Denis V. Lunev 2020-12-17 17:32 ` Dr. David Alan Gilbert 0 siblings, 1 reply; 7+ messages in thread From: Denis V. Lunev @ 2020-12-17 16:14 UTC (permalink / raw) To: Dr. David Alan Gilbert, Tuguoyi, berrange Cc: tuguoyi, qemu-devel, Juan Quintela On 12/17/20 6:27 PM, Dr. David Alan Gilbert wrote: > * Tuguoyi (tu.guoyi@h3c.com) wrote: >> The snapshot in each bs is deleted at the beginning, so there is no need >> to find the snapshot again. >> >> Signed-off-by: Tuguoyi <tu.guoyi@h3c.com> > This looks OK to me, becoming redundant after Denis's 0b46160 - but > I don't know the snapshot code much; > > Denis - do you agree this is correct? For me it looks too that the code becomes redundant, thus Reviewed-by: Denis V. Lunev <den@openvz.org> > Dave > >> --- >> migration/savevm.c | 10 ++-------- >> 1 file changed, 2 insertions(+), 8 deletions(-) >> >> diff --git a/migration/savevm.c b/migration/savevm.c >> index 5f937a2..601b514 100644 >> --- a/migration/savevm.c >> +++ b/migration/savevm.c >> @@ -2728,7 +2728,7 @@ int qemu_load_device_state(QEMUFile *f) >> int save_snapshot(const char *name, Error **errp) >> { >> BlockDriverState *bs, *bs1; >> - QEMUSnapshotInfo sn1, *sn = &sn1, old_sn1, *old_sn = &old_sn1; >> + QEMUSnapshotInfo sn1, *sn = &sn1; >> int ret = -1, ret2; >> QEMUFile *f; >> int saved_vm_running; >> @@ -2797,13 +2797,7 @@ int save_snapshot(const char *name, Error **errp) >> } >> >> if (name) { >> - ret = bdrv_snapshot_find(bs, old_sn, name); >> - if (ret >= 0) { >> - pstrcpy(sn->name, sizeof(sn->name), old_sn->name); >> - pstrcpy(sn->id_str, sizeof(sn->id_str), old_sn->id_str); >> - } else { >> - pstrcpy(sn->name, sizeof(sn->name), name); >> - } >> + pstrcpy(sn->name, sizeof(sn->name), name); >> } else { >> /* cast below needed for OpenBSD where tv_sec is still 'long' */ >> localtime_r((const time_t *)&tv.tv_sec, &tm); >> -- >> 2.7.4 >> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] savevm: Remove dead code in save_snapshot() 2020-12-17 16:14 ` Denis V. Lunev @ 2020-12-17 17:32 ` Dr. David Alan Gilbert 0 siblings, 0 replies; 7+ messages in thread From: Dr. David Alan Gilbert @ 2020-12-17 17:32 UTC (permalink / raw) To: Denis V. Lunev; +Cc: qemu-devel, tuguoyi, berrange, Tuguoyi, Juan Quintela * Denis V. Lunev (den@openvz.org) wrote: > On 12/17/20 6:27 PM, Dr. David Alan Gilbert wrote: > > * Tuguoyi (tu.guoyi@h3c.com) wrote: > >> The snapshot in each bs is deleted at the beginning, so there is no need > >> to find the snapshot again. > >> > >> Signed-off-by: Tuguoyi <tu.guoyi@h3c.com> > > This looks OK to me, becoming redundant after Denis's 0b46160 - but > > I don't know the snapshot code much; > > > > Denis - do you agree this is correct? > > For me it looks too that the code becomes redundant, thus > > Reviewed-by: Denis V. Lunev <den@openvz.org> Thanks! (Both patches) queued > > Dave > > > >> --- > >> migration/savevm.c | 10 ++-------- > >> 1 file changed, 2 insertions(+), 8 deletions(-) > >> > >> diff --git a/migration/savevm.c b/migration/savevm.c > >> index 5f937a2..601b514 100644 > >> --- a/migration/savevm.c > >> +++ b/migration/savevm.c > >> @@ -2728,7 +2728,7 @@ int qemu_load_device_state(QEMUFile *f) > >> int save_snapshot(const char *name, Error **errp) > >> { > >> BlockDriverState *bs, *bs1; > >> - QEMUSnapshotInfo sn1, *sn = &sn1, old_sn1, *old_sn = &old_sn1; > >> + QEMUSnapshotInfo sn1, *sn = &sn1; > >> int ret = -1, ret2; > >> QEMUFile *f; > >> int saved_vm_running; > >> @@ -2797,13 +2797,7 @@ int save_snapshot(const char *name, Error **errp) > >> } > >> > >> if (name) { > >> - ret = bdrv_snapshot_find(bs, old_sn, name); > >> - if (ret >= 0) { > >> - pstrcpy(sn->name, sizeof(sn->name), old_sn->name); > >> - pstrcpy(sn->id_str, sizeof(sn->id_str), old_sn->id_str); > >> - } else { > >> - pstrcpy(sn->name, sizeof(sn->name), name); > >> - } > >> + pstrcpy(sn->name, sizeof(sn->name), name); > >> } else { > >> /* cast below needed for OpenBSD where tv_sec is still 'long' */ > >> localtime_r((const time_t *)&tv.tv_sec, &tm); > >> -- > >> 2.7.4 > >> > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] savevm: Delete snapshots just created in case of error 2020-12-08 6:53 [PATCH 0/2] savevm: Delete stale snapshots in save_snapshot() Tuguoyi 2020-12-08 6:53 ` [PATCH 1/2] savevm: Remove dead code " Tuguoyi @ 2020-12-08 6:53 ` Tuguoyi 2020-12-17 15:38 ` Dr. David Alan Gilbert 1 sibling, 1 reply; 7+ messages in thread From: Tuguoyi @ 2020-12-08 6:53 UTC (permalink / raw) To: Juan Quintela, Dr. David Alan Gilbert; +Cc: tuguoyi, qemu-devel, Tuguoyi bdrv_all_create_snapshot() can fails with some snapshots created, so it's better to delete those snapshots before returns to the caller Signed-off-by: Tuguoyi <tu.guoyi@h3c.com> --- migration/savevm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/migration/savevm.c b/migration/savevm.c index 601b514..4a18c9d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2833,6 +2833,7 @@ int save_snapshot(const char *name, Error **errp) if (ret < 0) { error_setg(errp, "Error while creating snapshot on '%s'", bdrv_get_device_or_node_name(bs)); + bdrv_all_delete_snapshot(sn->name, &bs, NULL); goto the_end; } -- 2.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] savevm: Delete snapshots just created in case of error 2020-12-08 6:53 ` [PATCH 2/2] savevm: Delete snapshots just created in case of error Tuguoyi @ 2020-12-17 15:38 ` Dr. David Alan Gilbert 0 siblings, 0 replies; 7+ messages in thread From: Dr. David Alan Gilbert @ 2020-12-17 15:38 UTC (permalink / raw) To: Tuguoyi, berrange; +Cc: tuguoyi, qemu-devel, Juan Quintela * Tuguoyi (tu.guoyi@h3c.com) wrote: > bdrv_all_create_snapshot() can fails with some snapshots created, > so it's better to delete those snapshots before returns to the caller > > Signed-off-by: Tuguoyi <tu.guoyi@h3c.com> This makes sense to me, Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > migration/savevm.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/migration/savevm.c b/migration/savevm.c > index 601b514..4a18c9d 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -2833,6 +2833,7 @@ int save_snapshot(const char *name, Error **errp) > if (ret < 0) { > error_setg(errp, "Error while creating snapshot on '%s'", > bdrv_get_device_or_node_name(bs)); > + bdrv_all_delete_snapshot(sn->name, &bs, NULL); > goto the_end; > } > > -- > 2.7.4 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-12-17 17:43 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-12-08 6:53 [PATCH 0/2] savevm: Delete stale snapshots in save_snapshot() Tuguoyi 2020-12-08 6:53 ` [PATCH 1/2] savevm: Remove dead code " Tuguoyi 2020-12-17 15:27 ` Dr. David Alan Gilbert 2020-12-17 16:14 ` Denis V. Lunev 2020-12-17 17:32 ` Dr. David Alan Gilbert 2020-12-08 6:53 ` [PATCH 2/2] savevm: Delete snapshots just created in case of error Tuguoyi 2020-12-17 15:38 ` Dr. David Alan Gilbert
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).