From a269075724dda958bb66e19f0d4ec3f5e52d97ba Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 29 Aug 2016 11:03:35 -0400 Subject: [PATCH] commit: Don't delete tmp/cache dir We hold a fd open on this, and it's basically now expected to be immortal. Confer that status. This was showing up in flatpak crashers, because we'd get an unexpected errno. (I didn't test this fixes the crasher, but it's clearly right) https://bugzilla.redhat.com/show_bug.cgi?id=1347293 Closes: #476 Approved by: alexlarsson --- src/libostree/ostree-repo-commit.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c index 9a938ddc..8dfe276f 100644 --- a/src/libostree/ostree-repo-commit.c +++ b/src/libostree/ostree-repo-commit.c @@ -1219,6 +1219,12 @@ cleanup_tmpdir (OstreeRepo *self, if (dent == NULL) break; + /* Special case this; we create it when opening, and don't want + * to blow it away. + */ + if (strcmp (dent->d_name, "cache") == 0) + continue; + if (TEMP_FAILURE_RETRY (fstatat (dfd_iter.fd, dent->d_name, &stbuf, AT_SYMLINK_NOFOLLOW)) < 0) { if (errno == ENOENT) /* Did another cleanup win? */