ostree/debian/patches/lib-commit-Fix-EBADF-with-G...

58 lines
2.0 KiB
Diff

From: Colin Walters <walters@verbum.org>
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++;