deltas: Take a shared repo lock while reindexing deltas
This ensures we're not racing with a prune operation that can be removing the delta indexes we're relying on.
This commit is contained in:
parent
e8a7485458
commit
0984ff8471
|
|
@ -1265,6 +1265,12 @@ ostree_repo_static_delta_reindex (OstreeRepo *repo,
|
||||||
g_autoptr(GPtrArray) all_deltas = NULL;
|
g_autoptr(GPtrArray) all_deltas = NULL;
|
||||||
g_autoptr(GHashTable) deltas_to_commit_ht = NULL; /* map: to checksum -> ptrarray of from checksums (or NULL) */
|
g_autoptr(GHashTable) deltas_to_commit_ht = NULL; /* map: to checksum -> ptrarray of from checksums (or NULL) */
|
||||||
|
|
||||||
|
/* Protect against parallel prune operation */
|
||||||
|
g_autoptr(OstreeRepoAutoLock) lock =
|
||||||
|
_ostree_repo_auto_lock_push (repo, OSTREE_REPO_LOCK_SHARED, cancellable, error);
|
||||||
|
if (!lock)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
deltas_to_commit_ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)null_or_ptr_array_unref);
|
deltas_to_commit_ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)null_or_ptr_array_unref);
|
||||||
|
|
||||||
if (opt_to_commit == NULL)
|
if (opt_to_commit == NULL)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue