From 88dca03967ede45c4be475eafd005b6c881e6a56 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Fri, 21 Jan 2022 11:28:25 -0500 Subject: [PATCH] lib/deploy: When deleting staged deployment, delete any lock Otherwise, any future staged deployment will also automatically be locked even if not requested. Likely we should fold the locking into the primary `staged-deployment` serialized GVariant instead. --- src/libostree/ostree-sysroot-deploy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c index 726379d6..d3f277a7 100644 --- a/src/libostree/ostree-sysroot-deploy.c +++ b/src/libostree/ostree-sysroot-deploy.c @@ -2493,6 +2493,10 @@ ostree_sysroot_write_deployments_with_options (OstreeSysroot *self, if (!_ostree_sysroot_rmrf_deployment (self, self->staged_deployment, cancellable, error)) return FALSE; + /* Delete the lock if there was any. */ + if (!ot_ensure_unlinked_at (AT_FDCWD, _OSTREE_SYSROOT_RUNSTATE_STAGED_LOCKED, error)) + return FALSE; + /* Clear it out of the *current* deployments list to maintain invariants */ self->staged_deployment = NULL; g_ptr_array_remove_index (self->deployments, 0);