mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-20 18:09:21 +03:00
lib/deploy: Add safety margin in early prune space check
There are a few things the estimator doesn't account for, e.g. writing the new BLS entries. Rather than trying to perfect it (since I think we should change approach entirely -- see previous commit message), just add a 1M margin to the space check.
This commit is contained in:
parent
4982306e67
commit
cc5747a605
@ -59,6 +59,12 @@
|
|||||||
SD_ID128_MAKE (e8, 64, 6c, d6, 3d, ff, 46, 25, b7, 79, 09, a8, e7, a4, 09, 94)
|
SD_ID128_MAKE (e8, 64, 6c, d6, 3d, ff, 46, 25, b7, 79, 09, a8, e7, a4, 09, 94)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* How much additional space we require available on top of what we accounted
|
||||||
|
* during the early prune fallocate space check. This accounts for anything not
|
||||||
|
* captured directly by `get_kernel_layout_size()` like writing new BLS entries.
|
||||||
|
*/
|
||||||
|
#define EARLY_PRUNE_SAFETY_MARGIN_SIZE (1 << 20) /* 1 MB */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Like symlinkat() but overwrites (atomically) an existing
|
* Like symlinkat() but overwrites (atomically) an existing
|
||||||
* symlink.
|
* symlink.
|
||||||
@ -2541,6 +2547,9 @@ dfd_fallocate_check (int dfd, off_t len, gboolean *out_passed, GError **error)
|
|||||||
if (!glnx_open_tmpfile_linkable_at (dfd, ".", O_WRONLY | O_CLOEXEC, &tmpf, error))
|
if (!glnx_open_tmpfile_linkable_at (dfd, ".", O_WRONLY | O_CLOEXEC, &tmpf, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
/* add the safety margin */
|
||||||
|
len += EARLY_PRUNE_SAFETY_MARGIN_SIZE;
|
||||||
|
|
||||||
*out_passed = TRUE;
|
*out_passed = TRUE;
|
||||||
/* There's glnx_try_fallocate, but not with the same error semantics. */
|
/* There's glnx_try_fallocate, but not with the same error semantics. */
|
||||||
if (TEMP_FAILURE_RETRY (fallocate (tmpf.fd, 0, 0, len)) < 0)
|
if (TEMP_FAILURE_RETRY (fallocate (tmpf.fd, 0, 0, len)) < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user