lib: Add a private helper to abort txns, use in sysroot cleanup
Steal some code from flatpak for this, which allows porting a few more things to new style. I started on a public API version of this but was trying to roll some other things into it and it snowballed. Let's do this version since it's easy for now. While here I changed things so that `generate_deployment_refs()` now just uses `_set_ref_immediate()` rather than requring a txn. Also, AFAICS there was no test coverage of `generate_deployment_refs()`; I tried commenting it out and at least `admin-test.sh` passed. Add some coverage of this - I verified that with this commenting out bits of that function cause the test to fail. Closes: #1132 Approved by: jlebon
This commit is contained in:
1 parent
6be4dfe66e
commit
3594bb2d0f
3 files changed
+57
-41
No files matched your search
@@ -158,6 +158,27 @@ struct OstreeRepo {
|
||||
OstreeRepo *parent_repo;
|
||||
};
|
||||
|
||||
/* Taken from flatpak; may be made into public API later */
|
||||
typedef OstreeRepo _OstreeRepoAutoTransaction;
|
||||
static inline void
|
||||
_ostree_repo_auto_transaction_cleanup (void *p)
|
||||
{
|
||||
OstreeRepo *repo = p;
|
||||
if (repo)
|
||||
(void) ostree_repo_abort_transaction (repo, NULL, NULL);
|
||||
}
|
||||
|
||||
static inline _OstreeRepoAutoTransaction *
|
||||
_ostree_repo_auto_transaction_start (OstreeRepo *repo,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error))
|
||||
return NULL;
|
||||
return (_OstreeRepoAutoTransaction *)repo;
|
||||
}
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (_OstreeRepoAutoTransaction, _ostree_repo_auto_transaction_cleanup)
|
||||
|
||||
typedef struct {
|
||||
dev_t dev;
|
||||
ino_t ino;
|
||||
|
||||
Reference in new issue
Block a user