From: Lennart Poettering Date: Thu, 21 Apr 2016 10:47:36 +0000 (+0200) Subject: util: copy_file_range() returns EBADF when used on a tty X-Git-Tag: v230~129^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6402d5c628f1872a4874508bbe975aaac1cc747b;p=thirdparty%2Fsystemd.git util: copy_file_range() returns EBADF when used on a tty In nspawn we invoke copy_bytes() on a TTY fd. copy_file_range() returns EBADF on a TTY and this error is considered fatal by copy_bytes() so far. Correct that, so that nspawn's copy_bytes() operation works again. This is a follow-up for a44202e98b638024c45e50ad404c7069c7835c04. --- diff --git a/src/basic/copy.c b/src/basic/copy.c index e2db4be9ff4..03487a6878d 100644 --- a/src/basic/copy.c +++ b/src/basic/copy.c @@ -102,7 +102,7 @@ int copy_bytes(int fdf, int fdt, uint64_t max_bytes, bool try_reflink) { if (try_cfr) { n = try_copy_file_range(fdf, NULL, fdt, NULL, m, 0u); if (n < 0) { - if (!IN_SET(n, -EINVAL, -ENOSYS, -EXDEV)) + if (!IN_SET(n, -EINVAL, -ENOSYS, -EXDEV, -EBADF)) return n; try_cfr = false;