mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-03 05:18:24 +03:00
Merge pull request #3243 from cgwalters/loaded_ts_fix
sysroot: Handle `/ostree/deploy` having epoch 0
This commit is contained in:
commit
92f2abcb85
@ -85,6 +85,8 @@ struct OstreeSysroot
|
|||||||
OstreeDeployment *booted_deployment;
|
OstreeDeployment *booted_deployment;
|
||||||
OstreeDeployment *staged_deployment;
|
OstreeDeployment *staged_deployment;
|
||||||
GVariant *staged_deployment_data;
|
GVariant *staged_deployment_data;
|
||||||
|
// True if loaded_ts is initialized
|
||||||
|
gboolean has_loaded;
|
||||||
struct timespec loaded_ts;
|
struct timespec loaded_ts;
|
||||||
|
|
||||||
/* Only access through ostree_sysroot_[_get]repo() */
|
/* Only access through ostree_sysroot_[_get]repo() */
|
||||||
|
@ -1261,7 +1261,7 @@ ostree_sysroot_load_if_changed (OstreeSysroot *self, gboolean *out_changed,
|
|||||||
if (!glnx_fstatat (self->sysroot_fd, "ostree/deploy", &stbuf, 0, error))
|
if (!glnx_fstatat (self->sysroot_fd, "ostree/deploy", &stbuf, 0, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (self->loaded_ts.tv_sec == stbuf.st_mtim.tv_sec
|
if (self->has_loaded && self->loaded_ts.tv_sec == stbuf.st_mtim.tv_sec
|
||||||
&& self->loaded_ts.tv_nsec == stbuf.st_mtim.tv_nsec)
|
&& self->loaded_ts.tv_nsec == stbuf.st_mtim.tv_nsec)
|
||||||
{
|
{
|
||||||
if (out_changed)
|
if (out_changed)
|
||||||
@ -1280,6 +1280,7 @@ ostree_sysroot_load_if_changed (OstreeSysroot *self, gboolean *out_changed,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
self->loaded_ts = stbuf.st_mtim;
|
self->loaded_ts = stbuf.st_mtim;
|
||||||
|
self->has_loaded = TRUE;
|
||||||
|
|
||||||
if (out_changed)
|
if (out_changed)
|
||||||
*out_changed = TRUE;
|
*out_changed = TRUE;
|
||||||
|
@ -60,7 +60,9 @@ orig_mtime=$(stat -c '%.Y' sysroot/ostree/deploy)
|
|||||||
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo pull-local --remote=testos testos-repo testos/buildmain/x86_64-runtime
|
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo pull-local --remote=testos testos-repo testos/buildmain/x86_64-runtime
|
||||||
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmain/x86_64-runtime)
|
rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmain/x86_64-runtime)
|
||||||
export rev
|
export rev
|
||||||
# This initial deployment gets kicked off with some kernel arguments
|
# This initial deployment gets kicked off with some kernel arguments. We also set the initial
|
||||||
|
# timestamp of the deploy directory to the epoch as a regression test.
|
||||||
|
touch -d @0 sysroot/ostree/deploy
|
||||||
${CMD_PREFIX} ostree admin deploy --karg=root=LABEL=MOO --karg=quiet --os=testos testos:testos/buildmain/x86_64-runtime
|
${CMD_PREFIX} ostree admin deploy --karg=root=LABEL=MOO --karg=quiet --os=testos testos:testos/buildmain/x86_64-runtime
|
||||||
new_mtime=$(stat -c '%.Y' sysroot/ostree/deploy)
|
new_mtime=$(stat -c '%.Y' sysroot/ostree/deploy)
|
||||||
assert_not_streq "${orig_mtime}" "${new_mtime}"
|
assert_not_streq "${orig_mtime}" "${new_mtime}"
|
||||||
|
Loading…
Reference in New Issue
Block a user