From: Colin Walters Date: Thu, 12 Apr 2018 16:53:17 +0000 (-0400) Subject: deploy: Silently do nothing if passed same set of deployments X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~24^2~52 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=efdaf1495b5f8e8953f0d5174a478028639b9dac;p=ostree.git deploy: Silently do nothing if passed same set of deployments Prep for handling staged deployments better; if we're not passed the staged one back, then we just want to delete it but not touch the bootloader config. Closes: #1538 Approved by: jlebon --- diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c index d3540c8d..e7dc25d0 100644 --- a/src/libostree/ostree-sysroot-deploy.c +++ b/src/libostree/ostree-sysroot-deploy.c @@ -2158,14 +2158,26 @@ ostree_sysroot_write_deployments_with_options (OstreeSysroot *self, requires_new_bootversion = TRUE; else { + gboolean is_noop = TRUE; for (guint i = 0; i < new_deployments->len; i++) { - if (!deployment_bootconfigs_equal (new_deployments->pdata[i], - self->deployments->pdata[i])) + OstreeDeployment *cur_deploy = self->deployments->pdata[i]; + OstreeDeployment *new_deploy = new_deployments->pdata[i]; + if (!deployment_bootconfigs_equal (cur_deploy, new_deploy)) { requires_new_bootversion = TRUE; + is_noop = FALSE; break; } + if (cur_deploy != new_deploy) + is_noop = FALSE; + } + + /* Silently do nothing if we're passed the same set of deployments */ + if (is_noop) + { + g_assert (!requires_new_bootversion); + return TRUE; } }