From: Seppo Yli-Olli Date: Tue, 14 Mar 2023 19:25:08 +0000 (+0200) Subject: Increase buffer size for create_regular_tmpfile_linkable_with_content X-Git-Tag: archive/raspbian/2023.7-3+rpi1~1^2~9^2~2^2~23^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=931a85d3f15554cb6428965ffebbe7d8eb0b43e4;p=ostree.git Increase buffer size for create_regular_tmpfile_linkable_with_content The small buffer size results in really bad performance under any FUSE-based filesystems with round-trips. --- diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c index 7f668b7d..4acc1e7f 100644 --- a/src/libostree/ostree-repo-commit.c +++ b/src/libostree/ostree-repo-commit.c @@ -678,12 +678,13 @@ create_regular_tmpfile_linkable_with_content (OstreeRepo *self, * e.g. 10 bytes but is actually gigabytes. * - Due to GLib bugs that pointlessly calls `poll()` on the output fd for every write */ - char buf[8192]; + gsize buf_size = MIN(length, 1048576); + g_autofree gchar * buf = g_malloc(buf_size); guint64 remaining = length; while (remaining > 0) { const gssize bytes_read = - g_input_stream_read (input, buf, MIN (remaining, sizeof (buf)), cancellable, error); + g_input_stream_read (input, buf, MIN (remaining, buf_size), cancellable, error); if (bytes_read < 0) return FALSE; else if (bytes_read == 0)