From: Simon McVittie Date: Mon, 7 Mar 2022 23:13:55 +0000 (+0000) Subject: Add patch to fall back if copy_file_range fails with EINVAL X-Git-Tag: archive/raspbian/2020.8-2+rpi1+deb11u1^2~12 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3fb72c1ab4f277a02ef5df2c826def72c2dfad96;p=ostree.git Add patch to fall back if copy_file_range fails with EINVAL This fixes an incompatibility with eCryptFS, in particular when using Flatpak in an eCryptFS home directory. Closes: #1004467 --- diff --git a/debian/patches/Fall-back-if-copy_file_range-fails-with-EINVAL.patch b/debian/patches/Fall-back-if-copy_file_range-fails-with-EINVAL.patch new file mode 100644 index 00000000..e9705c31 --- /dev/null +++ b/debian/patches/Fall-back-if-copy_file_range-fails-with-EINVAL.patch @@ -0,0 +1,31 @@ +From: Olaf Leidinger +Date: Mon, 24 Jan 2022 16:12:57 +0100 +Subject: Fall back if copy_file_range fails with EINVAL + +Although EINVAL usually indicates a programming error, ecryptfs (and +possibly other stacked filesystems) returns EINVAL for attempts to +copy_file_range() or sendfile() between files on that filesystem. + +Bug: https://gitlab.gnome.org/GNOME/libglnx/-/issues/3 +Bug: https://github.com/ostreedev/ostree/issues/2525 +Bug: https://github.com/flatpak/flatpak/issues/4673 +Bug-Debian: https://bugs.debian.org/1004467 +Applied-upstream: libglnx commit:24231a956a4b849087fbf01173cdebb53e1bd60b +Applied-upstream: libostree 2022.2, commit:0ebf9d9f64647d0b8b95cda112c7854be6f58ed3 +--- + libglnx/glnx-fdio.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libglnx/glnx-fdio.c b/libglnx/glnx-fdio.c +index 422bc2d..0bb26f4 100644 +--- a/libglnx/glnx-fdio.c ++++ b/libglnx/glnx-fdio.c +@@ -829,7 +829,7 @@ glnx_regfile_copy_bytes (int fdf, int fdt, off_t max_bytes) + have_cfr = 0; + try_cfr = false; + } +- else if (G_IN_SET (errno, EXDEV, EOPNOTSUPP)) ++ else if (G_IN_SET (errno, EXDEV, EINVAL, EOPNOTSUPP)) + /* We won't try cfr again for this run, but let's be + * conservative and not mark it as available/unavailable until + * we know for sure. diff --git a/debian/patches/series b/debian/patches/series index 0070b994..d9d2246a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ test-pull-summary-sigs-Set-timestamps-to-serve-expected-f.patch +Fall-back-if-copy_file_range-fails-with-EINVAL.patch debian/Skip-test-pull-repeated-during-CI.patch