diff --git a/apidoc/ostree-sections.txt b/apidoc/ostree-sections.txt index 2e174244..70f93bab 100644 --- a/apidoc/ostree-sections.txt +++ b/apidoc/ostree-sections.txt @@ -294,6 +294,7 @@ ostree_repo_create_at ostree_repo_create ostree_repo_get_path ostree_repo_get_mode +ostree_repo_get_min_free_space_bytes ostree_repo_get_config ostree_repo_get_dfd ostree_repo_hash diff --git a/src/libostree/libostree-devel.sym b/src/libostree/libostree-devel.sym index 24db9df2..0bdade75 100644 --- a/src/libostree/libostree-devel.sym +++ b/src/libostree/libostree-devel.sym @@ -19,6 +19,7 @@ /* Add new symbols here. Release commits should copy this section into -released.sym. */ LIBOSTREE_2018.9 { +ostree_repo_get_min_free_space_bytes; } LIBOSTREE_2018.7; /* Stub section for the stable release *after* this development one; don't diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 18736c24..edcb8af9 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -3292,6 +3292,26 @@ ostree_repo_get_mode (OstreeRepo *self) return self->mode; } +/** + * ostree_repo_get_min_free_space: + * @self: Repo + * + * It should be noted that this function should be used only if there + * is a transaction active. It is a programmer error to request it + * otherwise. + * + * Returns: Value (in bytes) of min-free-space-* config option + * Since: 2018.9 + */ +guint64 +ostree_repo_get_min_free_space_bytes (OstreeRepo *self) +{ + g_return_val_if_fail (OSTREE_IS_REPO (self), 0); + g_return_val_if_fail (self->in_transaction == TRUE, 0); + + return self->reserved_blocks * self->txn.blocksize; +} + /** * ostree_repo_get_parent: * @self: Repo diff --git a/src/libostree/ostree-repo.h b/src/libostree/ostree-repo.h index 60fa3d3e..11b7927e 100644 --- a/src/libostree/ostree-repo.h +++ b/src/libostree/ostree-repo.h @@ -127,6 +127,8 @@ gboolean ostree_repo_equal (OstreeRepo *a, _OSTREE_PUBLIC OstreeRepoMode ostree_repo_get_mode (OstreeRepo *self); +_OSTREE_PUBLIC +guint64 ostree_repo_get_min_free_space_bytes (OstreeRepo *self); _OSTREE_PUBLIC GKeyFile * ostree_repo_get_config (OstreeRepo *self);