From efdaf1495b5f8e8953f0d5174a478028639b9dac Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 12 Apr 2018 12:53:17 -0400 Subject: [PATCH] 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 --- src/libostree/ostree-sysroot-deploy.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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; } }