58 lines
2.0 KiB
Diff
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++;
|