From: Colin Walters Date: Wed, 19 Jul 2017 09:19:16 -0400 Subject: lib/commit: Fix EBADF with GENERATE_SIZES option for commit Regression from previous tmpfile refactoring; unfortunately the `OSTREE_REPO_COMMIT_MODIFIER_FLAGS_GENERATE_SIZES` option only has coverage via gjs currently. Might expose it via the cmdline in a later option, but in the big picture the idea was that this data is better kept in static deltas. Bug: https://github.com/ostreedev/ostree/issues/1014 Forwarded: https://github.com/ostreedev/ostree/pull/1016 --- src/libostree/ostree-repo-commit.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c index baeef3f..332f22a 100644 --- a/src/libostree/ostree-repo-commit.c +++ b/src/libostree/ostree-repo-commit.c @@ -733,6 +733,17 @@ write_content_object (OstreeRepo *self, } else { + /* Update size metadata if configured */ + if (indexable && object_file_type == G_FILE_TYPE_REGULAR) + { + struct stat stbuf; + + if (!glnx_fstat (tmpf.fd, &stbuf, error)) + return FALSE; + + repo_store_size_entry (self, actual_checksum, unpacked_size, stbuf.st_size); + } + /* This path is for regular files */ if (!commit_loose_regfile_object (self, actual_checksum, &tmpf, uid, gid, mode, @@ -742,17 +753,6 @@ write_content_object (OstreeRepo *self, ostree_object_type_to_string (OSTREE_OBJECT_TYPE_FILE)); } - /* Update size metadata if configured */ - if (indexable && object_file_type == G_FILE_TYPE_REGULAR) - { - struct stat stbuf; - - if (!glnx_fstat (tmpf.fd, &stbuf, error)) - return FALSE; - - repo_store_size_entry (self, actual_checksum, unpacked_size, stbuf.st_size); - } - /* Update statistics */ g_mutex_lock (&self->txn_stats_lock); self->txn_stats.content_objects_written++;