From unknown Tue Jun 17 01:43:46 2025 X-Loop: help-debbugs@gnu.org Subject: bug#60489: Programs should exit after EIO from FICLONE or copy_file_range() Resent-From: Noah Misch Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Mon, 02 Jan 2023 08:54:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 60489 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: 60489@debbugs.gnu.org X-Debbugs-Original-To: bug-coreutils@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.167264963621017 (code B ref -1); Mon, 02 Jan 2023 08:54:03 +0000 Received: (at submit) by debbugs.gnu.org; 2 Jan 2023 08:53:56 +0000 Received: from localhost ([127.0.0.1]:42411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCGZv-0005Sq-PU for submit@debbugs.gnu.org; Mon, 02 Jan 2023 03:53:56 -0500 Received: from lists.gnu.org ([209.51.188.17]:50754) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCEQs-0001w3-TU for submit@debbugs.gnu.org; Mon, 02 Jan 2023 01:36:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pCEQs-0006y3-NR for bug-coreutils@gnu.org; Mon, 02 Jan 2023 01:36:26 -0500 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pCEQq-0001tt-Mf for bug-coreutils@gnu.org; Mon, 02 Jan 2023 01:36:26 -0500 Received: by mail-qt1-x82d.google.com with SMTP id x11so21872053qtv.13 for ; Sun, 01 Jan 2023 22:36:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:from:to:cc:subject:date:message-id:reply-to; bh=TBBX1Qo4UEHginBb5ENHSpcu9ZaBkP8oso78nldDuEI=; b=B7PuGPPCN/Kf6UlIhLDioLPNldxbek5jlCLfDBd6VY6W7pfHno7ZFXOYxaj0+x5e14 0E1MpoWJaKnjr2scd8o0pXtr1uQ4j/KNbu7D3FTGG4AS074m53V03V2TQEV9evmm+nEs Cm5gI2tKJz96RKleHjT92GYugpIOxJ12s6N/M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TBBX1Qo4UEHginBb5ENHSpcu9ZaBkP8oso78nldDuEI=; b=UcwakY9SFO4HoK1tvHU3cGAAyR/UpO9mJgEV2bhFHzANh4OReiL3oznx2qapheHeqL 8eXxLsihAbE3iED/9JBuTWxZpi4mWYRzVEyrkKI4s/XmTZ+Mj9snq9xILQoRAOK5y7Kx GEPcPhTMfx9ta3y2Oa0iOm0k/2oUUiDuK57TkN3nJNqzKdB7yIz+JMtjFf33xZaZdREn h4u6ja1ZKQ1QaOFYBlErpOZaaRYThHuGbOoc9ZW5xy6jMj8oMnXLwCJOcXH/ybckKy2b JV4uo1VsJINW+55fpyagsqbZVe9g/LkbjiCD0XIm3F3tqww4gWc/JaZtMJXPDSVvp6Ay KrYg== X-Gm-Message-State: AFqh2kpA89Xbqk4lWoFVM+K8TX0kTqlg7UePREjul8aYJVAmIUDUz+hO c81tw0Lobaono1N//hXvXReoiLjnyTnV0uCy X-Google-Smtp-Source: AMrXdXuiu4M81nxgdSofyKIqmfp4sfPjS3DSV3ePdkzL0W4tYQpbRBHYCKbcL2jlK/mXM01xZvNoNw== X-Received: by 2002:ac8:4984:0:b0:3a8:14ce:73db with SMTP id f4-20020ac84984000000b003a814ce73dbmr53892400qtq.17.1672641382962; Sun, 01 Jan 2023 22:36:22 -0800 (PST) Received: from rfd.leadboat.com ([2600:1702:a20:5750::2e]) by smtp.gmail.com with ESMTPSA id q22-20020a05620a0d9600b006eee3a09ff3sm11430195qkl.69.2023.01.01.22.36.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 01 Jan 2023 22:36:22 -0800 (PST) Date: Sun, 1 Jan 2023 22:36:20 -0800 From: Noah Misch Message-ID: <20230102063620.GA1629213@rfd.leadboat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) Received-SPF: none client-ip=2607:f8b0:4864:20::82d; envelope-from=noah@leadboat.com; helo=mail-qt1-x82d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Mailman-Approved-At: Mon, 02 Jan 2023 03:53:53 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Because Debian coreutils 9.1-1 "cp" silently falls back to copy_file_range() after FICLONE reports EIO, "cp" can transfer incorrect bytes. Linux syscalls having a file descriptor parameter report EIO after a fault in the underlying device. The affected file is not recoverable in the general case, but syscall outcomes after the EIO don't reflect that. For example, consider FICLONE returning EIO for a fault during source file writeback. The kernel will mark "clean" the affected page cache entries and clear the EIO state. If the page cache evicts those pages, their file offsets revert to the last written-back values if any, else zeros. If userspace issues a syscall that bypasses the page cache, like copy_file_range() or another FICLONE, that syscall clones the last written-back state or zeroes. See https://lore.kernel.org/linux-xfs/20221108172436.GA3613139@rfd.leadboat.com for a "cp" and "cat" test script, background, and discussion. I recommend instead reporting the EIO and terminating when FICLONE or copy_file_range() fails with EIO. One could argue that ENOSPC also warrants termination, since no fallback reduces space usage. For other errno values, fallback to the next transfer strategy, like today. An alternative would be to fallback from FICLONE to copy_file_range() only after known-appropriate errors EBADF, EINVAL, EOPNOTSUPP, ETXTBSY, and EXDEV. That alternative wins if future FICLONE reports an additional termination-deserving errno value. Since just EIO needs termination today, I bet new errno values are more likely than not to deserve fallback. What do you think? Thanks, nm From unknown Tue Jun 17 01:43:46 2025 X-Loop: help-debbugs@gnu.org Subject: bug#60489: Programs should exit after EIO from FICLONE or copy_file_range() Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Mon, 02 Jan 2023 13:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60489 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Noah Misch , 60489@debbugs.gnu.org Received: via spool by 60489-submit@debbugs.gnu.org id=B60489.167266559611412 (code B ref 60489); Mon, 02 Jan 2023 13:20:02 +0000 Received: (at 60489) by debbugs.gnu.org; 2 Jan 2023 13:19:56 +0000 Received: from localhost ([127.0.0.1]:42735 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCKjI-0002xs-IJ for submit@debbugs.gnu.org; Mon, 02 Jan 2023 08:19:56 -0500 Received: from mail-wm1-f44.google.com ([209.85.128.44]:45776) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCKjD-0002xV-A9 for 60489@debbugs.gnu.org; Mon, 02 Jan 2023 08:19:51 -0500 Received: by mail-wm1-f44.google.com with SMTP id p1-20020a05600c1d8100b003d8c9b191e0so20533955wms.4 for <60489@debbugs.gnu.org>; Mon, 02 Jan 2023 05:19:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:sender:from:to:cc:subject:date :message-id:reply-to; bh=EsAX8Sp1Jd31a0MDy+b+zGXfHscjAicZI9nnXqS8huw=; b=Y+bsRAHnLl3kJmgmqB/w387QrtZJ0OwpHS8c/Psooojo/66/lSOzeuaSOx/dKLdAlW Yiz7fQL1XG6L4hlFLpaO7RL/3nd5DGHg67wX3Yt0PjYEa5HyVH7i0TBPa7VMNe0zvHRa f3+5foxHBtH2EQVdl5kNRAf3gpsyAVs2Ns1RtPBPcD6jweKgFpWsZ58DJXu/NRHu+x9O rx01AnZ7crPtoEmbMaDsz9GWW3CbM5RBKR0vYTHQ6LqvBAzJYzhMS2QO2tvg/APj0HGD By6F/V5/a4a1GJ8FYPGPPm7N/eBL9AkxQsXdBSu0pToO1S2oJzMiFIwYjW8sItbYzXtB 7v4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EsAX8Sp1Jd31a0MDy+b+zGXfHscjAicZI9nnXqS8huw=; b=cpHf/Ui9AaJXZiIPnbTF9wDAU3bh/7UgHGk736KGY789F3s1f4hUz7XoyRuUY2hWAb ipwbgrebuNrqnibkDgENB13LIKYgvtn8TrBzuaANLfc6ICqZjwDbLNYFPN7zxmRAY3lX cB1pkDh0qxTpK2YddzTFt9tLq4S0fhwLO3aQ4C8v09SYGuV/P8JBBeEnTYsWPyMWb6y0 9Y6QmK8Yw3TADu4RkwmADdLUr9o0buIWLflMF1+yt/C2a7W4wfVM9ijkVzUN9jtyDnO/ Dp/De1DNFsZLf3iqxfBRKbD49vTH7XBgVgQ1axN7z3f8DM4/qY5K2yZIKl5zadfvnhdI 8M9Q== X-Gm-Message-State: AFqh2kpk88jy9lXdVwS4xokaGT+JMAljWOJfFIET7BTWeGVVhk7hG5hh HEviTeVwPxD/cfp1dvDn4DU= X-Google-Smtp-Source: AMrXdXtHLY30jMQ42H+1G8eI8wlLwki2+tPWkU+/AJ7K1iDOwClbhVz/1/gQaRQPhnSH6qs/wEjPxw== X-Received: by 2002:a05:600c:378c:b0:3d2:1f10:3318 with SMTP id o12-20020a05600c378c00b003d21f103318mr32400245wmr.31.1672665581049; Mon, 02 Jan 2023 05:19:41 -0800 (PST) Received: from [192.168.1.9] (95-44-90-175-dynamic.agg2.lod.rsl-rtd.eircom.net. [95.44.90.175]) by smtp.googlemail.com with ESMTPSA id c12-20020a05600c0a4c00b003cfa3a12660sm62141053wmq.1.2023.01.02.05.19.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Jan 2023 05:19:40 -0800 (PST) Content-Type: multipart/mixed; boundary="------------CN8Bz1QomT8xrfkABCCQ0rhr" Message-ID: Date: Mon, 2 Jan 2023 13:19:39 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.0 Content-Language: en-US References: <20230102063620.GA1629213@rfd.leadboat.com> From: =?UTF-8?Q?P=C3=A1draig?= Brady In-Reply-To: <20230102063620.GA1629213@rfd.leadboat.com> X-Spam-Score: -0.9 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) This is a multi-part message in MIME format. --------------CN8Bz1QomT8xrfkABCCQ0rhr Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 02/01/2023 06:36, Noah Misch wrote: > Because Debian coreutils 9.1-1 "cp" silently falls back to copy_file_range() > after FICLONE reports EIO, "cp" can transfer incorrect bytes. Linux syscalls > having a file descriptor parameter report EIO after a fault in the underlying > device. The affected file is not recoverable in the general case, but syscall > outcomes after the EIO don't reflect that. For example, consider FICLONE > returning EIO for a fault during source file writeback. The kernel will mark > "clean" the affected page cache entries and clear the EIO state. If the page > cache evicts those pages, their file offsets revert to the last written-back > values if any, else zeros. If userspace issues a syscall that bypasses the > page cache, like copy_file_range() or another FICLONE, that syscall clones the > last written-back state or zeroes. See > https://lore.kernel.org/linux-xfs/20221108172436.GA3613139@rfd.leadboat.com > for a "cp" and "cat" test script, background, and discussion. > > I recommend instead reporting the EIO and terminating when FICLONE or > copy_file_range() fails with EIO. One could argue that ENOSPC also warrants > termination, since no fallback reduces space usage. For other errno values, > fallback to the next transfer strategy, like today. An alternative would be > to fallback from FICLONE to copy_file_range() only after known-appropriate > errors EBADF, EINVAL, EOPNOTSUPP, ETXTBSY, and EXDEV. That alternative wins > if future FICLONE reports an additional termination-deserving errno value. > Since just EIO needs termination today, I bet new errno values are more likely > than not to deserve fallback. What do you think? Yes we should have an allow list that we retry for, and otherwise fail for EIO, ENOSPC, ENOMEM, ... We already do this for copy_file_range(), but should treat FICLONE similarly, as done in the attached. thanks! Pádraig --------------CN8Bz1QomT8xrfkABCCQ0rhr Content-Type: text/x-patch; charset=UTF-8; name="copy-ficlone-fail.patch" Content-Disposition: attachment; filename="copy-ficlone-fail.patch" Content-Transfer-Encoding: base64 RnJvbSA0MDQxZDkzZmE4OTUyMjIwNjRkNmMyMGQzODBlMDUxNThiZDkzOWU3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogTW9uLCAyIEphbiAyMDIzIDEzOjA3OjQxICsw MDAwClN1YmplY3Q6IFtQQVRDSF0gY29weTogaW1tZWRpYXRlbHkgZmFpbCB3aXRoIHRyYW5z aWVudCBlcnJvcnMgZnJvbSBGSUNMT05FCgoqIHNyYy9jb3B5LmMgKGNvcHlfcmVnKTogRmFp bCB3aXRoIGFsbCBlcnJvcnMgZnJvbSBGSUNMT05FLAp1bmxlc3MgdGhleSdyZSBmcm9tIHRo ZSBzZXQgaW5kaWNhdGluZyB0aGUgZmlsZSBzeXN0ZW0Kb3IgZmlsZSBkbyBub3Qgc3VwcG9y dCB0aGUgY2xvbmUgb3BlcmF0aW9uLgoqIE5FV1M6IE1lbnRpb24gdGhlIGJ1ZyBmaXguICBB bHNvIG1lbnRpb24gZXhwbGljaXRseQp0aGUgLS1yZWZsaW5rPWF1dG8gZGVmYXVsdCBjaGFu Z2UgdG8gYWlkIHNlYXJjaGluZy4KKiBjZmcubWs6IEFkanVzdCBvbGRfTkVXU19oYXNoIHdp dGggYG1ha2UgdXBkYXRlLU5FV1MtaGFzaGAuCkZpeGVzIGh0dHBzOi8vYnVncy5nbnUub3Jn LzYwNDg5Ci0tLQogTkVXUyAgICAgICB8ICA3ICsrKysrKysKIGNmZy5tayAgICAgfCAgMiAr LQogc3JjL2NvcHkuYyB8IDI4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDMgZmls ZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvTkVXUyBiL05FV1MKaW5kZXggZjQzMTgyNzU3Li45NGYzYjkwODYgMTAwNjQ0Ci0t LSBhL05FV1MKKysrIGIvTkVXUwpAQCAtMTMsNiArMTMsMTIgQEAgR05VIGNvcmV1dGlscyBO RVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIG91dGxpbmUgLSot CiAgICdjcCAtcnggLyAvbW50JyBubyBsb25nZXIgY29tcGxhaW5zICJjYW5ub3QgY3JlYXRl IGRpcmVjdG9yeSAvbW50LyIuCiAgIFtidWcgaW50cm9kdWNlZCBpbiBjb3JldXRpbHMtOS4x XQogCisgIGNwLCBpbnN0YWxsLCBtdiBub3cgaW1tZWRpYXRlbHkgYWNrbm93bGVkZ2UgdHJh bnNpZW50IGVycm9ycyBmcm9tCisgIHRoZSBGSUNMT05FIGlvY3RsLCB1c2VkIHRvIGNyZWF0 ZSBjb3B5LW9uLXdyaXRlIG9yIHJlZmxpbmtlZCBjbG9uZXMuCisgIFByZXZpb3VzbHkgdGhl eSB3b3VsZCBoYXZlIHRyaWVkIGFnYWluIHdpdGggb3RoZXIgY29weSBtZXRob2RzCisgIHdo aWNoIG1heSBoYXZlIHJlc3VsdGVkIGluIGRhdGEgY29ycnVwdGlvbi4KKyAgW2J1ZyBpbnRy b2R1Y2VkIGluIGNvcmV1dGlscy03LjUgYW5kIGVuYWJsZWQgYnkgZGVmYXVsdCBpbiBjb3Jl dXRpbHMtOS4wXQorCiAgICdtdiAtLWJhY2t1cD1zaW1wbGUgZiBkLycgbm8gbG9uZ2VyIG1p c3Rha2VubHkgYmFja3MgdXAgZC9mIHRvIGZ+LgogICBbYnVnIGludHJvZHVjZWQgaW4gY29y ZXV0aWxzLTkuMV0KIApAQCAtMjgzLDYgKzI4OSw3IEBAIEdOVSBjb3JldXRpbHMgTkVXUyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBvdXRsaW5lIC0qLQogKiog Q2hhbmdlcyBpbiBiZWhhdmlvcgogCiAgIGNwIGFuZCBpbnN0YWxsIG5vdyBkZWZhdWx0IHRv IGNvcHktb24td3JpdGUgKENPVykgaWYgYXZhaWxhYmxlLgorICBJLmUuLCBjcCBub3cgdXNl cyAtLXJlZmxpbms9YXV0byBtb2RlIGJ5IGRlZmF1bHQuCiAKICAgY3AsIGluc3RhbGwgYW5k IG12IG5vdyB1c2UgdGhlIGNvcHlfZmlsZV9yYW5nZSBzeXNjYWxsIGlmIGF2YWlsYWJsZS4K ICAgQWxzbywgdGhleSB1c2UgbHNlZWsrU0VFS19IT0xFIHJhdGhlciB0aGFuIGlvY3RsK0ZT X0lPQ19GSUVNQVAgb24gc3BhcnNlCmRpZmYgLS1naXQgYS9jZmcubWsgYi9jZmcubWsKaW5k ZXggMTc5YTUxZDFjLi5jOWIyZDQzMjYgMTAwNjQ0Ci0tLSBhL2NmZy5taworKysgYi9jZmcu bWsKQEAgLTQ5LDcgKzQ5LDcgQEAgZXhwb3J0IFZFUkJPU0UgPSB5ZXMKICMgNDkxNDE1MiA5 ZQogZXhwb3J0IFhaX09QVCA9IC04ZQogCi1vbGRfTkVXU19oYXNoID0gZjM2NWUwY2YyYzc4 OTBjNjE3ZGY2YWJlNzA2MTVmY2UKK29sZF9ORVdTX2hhc2ggPSA0OTI2OWQ4ZDk5ZjQ4ODhh NGU5NTVkMjhjZGE1MDA5MQogCiAjIEFkZCBhbiBleGVtcHRpb24gZm9yIHNjX21ha2VmaWxl X2F0X2F0X2NoZWNrLgogX21ha2VmaWxlX2F0X2F0X2NoZWNrX2V4Y2VwdGlvbnMgPSAnICYm ICEvXmN1X2luc3RhbGxfcHJvZy8gJiYgIS9keW5hbWljLWRlcC8nCmRpZmYgLS1naXQgYS9z cmMvY29weS5jIGIvc3JjL2NvcHkuYwppbmRleCAzMTBjOGJmMTQuLjBmNTk5NDU5YiAxMDA2 NDQKLS0tIGEvc3JjL2NvcHkuYworKysgYi9zcmMvY29weS5jCkBAIC0yNjcsNiArMjY3LDcg QEAgc3BhcnNlX2NvcHkgKGludCBzcmNfZmQsIGludCBkZXN0X2ZkLCBjaGFyICoqYWJ1Ziwg c2l6ZV90IGJ1Zl9zaXplLAogICAgICAgICAgIH0KICAgICAgICAgaWYgKG5fY29waWVkIDwg MCkKICAgICAgICAgICB7CisgICAgICAgICAgICAvKiBOb3RlIGVycm9yIHNldCBpcyBjb25z aXN0ZW50IHdpdGggY2xvbmVfZmlsZSgpLiAgKi8KICAgICAgICAgICAgIGlmIChlcnJubyA9 PSBFTk9TWVMgfHwgaXNfRU5PVFNVUCAoZXJybm8pCiAgICAgICAgICAgICAgICAgfHwgZXJy bm8gPT0gRUlOVkFMIHx8IGVycm5vID09IEVCQURGCiAgICAgICAgICAgICAgICAgfHwgZXJy bm8gPT0gRVhERVYgfHwgZXJybm8gPT0gRVRYVEJTWSkKQEAgLTEyNzUsMjMgKzEyNzYsMzAg QEAgY29weV9yZWcgKGNoYXIgY29uc3QgKnNyY19uYW1lLCBjaGFyIGNvbnN0ICpkc3RfbmFt ZSwKICAgICB7CiAgICAgICBpZiAoY2xvbmVfZmlsZSAoZGVzdF9kZXNjLCBzb3VyY2VfZGVz YykgPT0gMCkKICAgICAgICAgZGF0YV9jb3B5X3JlcXVpcmVkID0gZmFsc2U7Ci0gICAgICBl bHNlIGlmICh4LT5yZWZsaW5rX21vZGUgPT0gUkVGTElOS19BTFdBWVMpCisgICAgICBlbHNl CiAgICAgICAgIHsKLSAgICAgICAgICBlcnJvciAoMCwgZXJybm8sIF8oImZhaWxlZCB0byBj bG9uZSAlcyBmcm9tICVzIiksCi0gICAgICAgICAgICAgICAgIHF1b3RlYWZfbiAoMCwgZHN0 X25hbWUpLCBxdW90ZWFmX24gKDEsIHNyY19uYW1lKSk7CisgICAgICAgICAgLyogTm90ZSBl cnJvciBzZXQgaXMgY29uc2lzdGVudCB3aXRoIGNvcHlfZmlsZV9yYW5nZSgpLiAgKi8KKyAg ICAgICAgICBib29sIG5vX2Nsb25lX2F0dGVtcHRlZCA9IGVycm5vID09IEVOT1NZUyB8fCBp c19FTk9UU1VQIChlcnJubykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHx8IGVycm5vID09IEVJTlZBTCB8fCBlcnJubyA9PSBFQkFERgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfHwgZXJybm8gPT0gRVhERVYgfHwgZXJybm8gPT0gRVRY VEJTWTsKKworICAgICAgICAgIGlmICh4LT5yZWZsaW5rX21vZGUgPT0gUkVGTElOS19BTFdB WVMgfHwgISBub19jbG9uZV9hdHRlbXB0ZWQpCisgICAgICAgICAgICBlcnJvciAoMCwgZXJy bm8sIF8oImZhaWxlZCB0byBjbG9uZSAlcyBmcm9tICVzIiksCisgICAgICAgICAgICAgICAg ICAgcXVvdGVhZl9uICgwLCBkc3RfbmFtZSksIHF1b3RlYWZfbiAoMSwgc3JjX25hbWUpKTsK IAogICAgICAgICAgIC8qIFJlbW92ZSB0aGUgZGVzdGluYXRpb24gaWYgY3AgLS1yZWZsaW5r PWFsd2F5cyBjcmVhdGVkIGl0Ci0gICAgICAgICAgICAgYnV0IGNsb25lZCBubyBkYXRhLiAg SWYgY2xvbmVfZmlsZSBmYWlsZWQgd2l0aAotICAgICAgICAgICAgIEVPUE5PVFNVUFAsIEVY REVWIG9yIEVJTlZBTCBubyBkYXRhIHdlcmUgY29waWVkIHNvIGRvIG5vdAotICAgICAgICAg ICAgIGdvIHRvIHRoZSBleHBlbnNlIG9mIGxzZWVraW5nLiAgKi8KKyAgICAgICAgICAgICBi dXQgY2xvbmVkIG5vIGRhdGEuICAqLwogICAgICAgICAgIGlmICgqbmV3X2RzdAotICAgICAg ICAgICAgICAmJiAoaXNfRU5PVFNVUCAoZXJybm8pIHx8IGVycm5vID09IEVYREVWIHx8IGVy cm5vID09IEVJTlZBTAotICAgICAgICAgICAgICAgICAgfHwgbHNlZWsgKGRlc3RfZGVzYywg MCwgU0VFS19FTkQpID09IDApCisgICAgICAgICAgICAgICYmIHgtPnJlZmxpbmtfbW9kZSA9 PSBSRUZMSU5LX0FMV0FZUworICAgICAgICAgICAgICAmJiAobm9fY2xvbmVfYXR0ZW1wdGVk IHx8IGxzZWVrIChkZXN0X2Rlc2MsIDAsIFNFRUtfRU5EKSA9PSAwKQogICAgICAgICAgICAg ICAmJiB1bmxpbmthdCAoZHN0X2RpcmZkLCBkc3RfcmVsbmFtZSwgMCkgIT0gMCAmJiBlcnJu byAhPSBFTk9FTlQpCiAgICAgICAgICAgICBlcnJvciAoMCwgZXJybm8sIF8oImNhbm5vdCBy ZW1vdmUgJXMiKSwgcXVvdGVhZiAoZHN0X25hbWUpKTsKIAotICAgICAgICAgIHJldHVybl92 YWwgPSBmYWxzZTsKLSAgICAgICAgICBnb3RvIGNsb3NlX3NyY19hbmRfZHN0X2Rlc2M7Cisg ICAgICAgICAgaWYgKHgtPnJlZmxpbmtfbW9kZSA9PSBSRUZMSU5LX0FMV0FZUyB8fCAhIG5v X2Nsb25lX2F0dGVtcHRlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0dXJu X3ZhbCA9IGZhbHNlOworICAgICAgICAgICAgICBnb3RvIGNsb3NlX3NyY19hbmRfZHN0X2Rl c2M7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLS0gCjIuMjYuMgoK --------------CN8Bz1QomT8xrfkABCCQ0rhr-- From unknown Tue Jun 17 01:43:46 2025 X-Loop: help-debbugs@gnu.org Subject: bug#60489: Programs should exit after EIO from FICLONE or copy_file_range() Resent-From: Andreas Schwab Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Mon, 02 Jan 2023 13:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60489 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: =?UTF-8?Q?P=C3=A1draig?= Brady Cc: 60489@debbugs.gnu.org, Noah Misch Received: via spool by 60489-submit@debbugs.gnu.org id=B60489.167266613612543 (code B ref 60489); Mon, 02 Jan 2023 13:29:02 +0000 Received: (at 60489) by debbugs.gnu.org; 2 Jan 2023 13:28:56 +0000 Received: from localhost ([127.0.0.1]:42751 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCKs4-0003GF-6f for submit@debbugs.gnu.org; Mon, 02 Jan 2023 08:28:56 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:44589) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCKs0-0003Fy-LT for 60489@debbugs.gnu.org; Mon, 02 Jan 2023 08:28:54 -0500 Received: from frontend03.mail.m-online.net (unknown [192.168.6.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4NlxXM0ph9z1r2sL; Mon, 2 Jan 2023 14:28:50 +0100 (CET) Received: from localhost (dynscan3.mnet-online.de [192.168.6.84]) by mail.m-online.net (Postfix) with ESMTP id 4NlxXL5fm5z1qqlR; Mon, 2 Jan 2023 14:28:50 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan3.mail.m-online.net [192.168.6.84]) (amavisd-new, port 10024) with ESMTP id 1Bstbj4_bCY4; Mon, 2 Jan 2023 14:28:50 +0100 (CET) X-Auth-Info: n2AHeqJH+AzU1GLMtoZNiG1NRcfDBQVKZu1F8EBBWsjEcr6FAVrKEECP4OtXLQYx Received: from igel.home (aftr-62-216-205-97.dynamic.mnet-online.de [62.216.205.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Mon, 2 Jan 2023 14:28:50 +0100 (CET) Received: by igel.home (Postfix, from userid 1000) id DEB9F2C129D; Mon, 2 Jan 2023 14:28:49 +0100 (CET) From: Andreas Schwab References: <20230102063620.GA1629213@rfd.leadboat.com> X-Yow: I'm sitting on my SPEED QUEEN.. To me, it's ENJOYABLE.. I'm WARM.. I'm VIBRATORY.. Date: Mon, 02 Jan 2023 14:28:49 +0100 In-Reply-To: ("=?UTF-8?Q?P=C3=A1draig?= Brady"'s message of "Mon, 2 Jan 2023 13:19:39 +0000") Message-ID: <87a631oyjy.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.4 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On Jan 02 2023, Pádraig Brady wrote: > + /* Note error set is consistent with copy_file_range(). */ > + bool no_clone_attempted = errno == ENOSYS || is_ENOTSUP (errno) > + || errno == EINVAL || errno == EBADF > + || errno == EXDEV || errno == ETXTBSY; Should this be refactored to avoid duplication? -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." From unknown Tue Jun 17 01:43:46 2025 X-Loop: help-debbugs@gnu.org Subject: bug#60489: Programs should exit after EIO from FICLONE or copy_file_range() Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Mon, 02 Jan 2023 16:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60489 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Andreas Schwab Cc: 60489@debbugs.gnu.org, Noah Misch Received: via spool by 60489-submit@debbugs.gnu.org id=B60489.167267653531345 (code B ref 60489); Mon, 02 Jan 2023 16:23:01 +0000 Received: (at 60489) by debbugs.gnu.org; 2 Jan 2023 16:22:15 +0000 Received: from localhost ([127.0.0.1]:43883 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCNZn-00089U-6h for submit@debbugs.gnu.org; Mon, 02 Jan 2023 11:22:15 -0500 Received: from mail-wr1-f54.google.com ([209.85.221.54]:41906) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCNZi-00089F-VM for 60489@debbugs.gnu.org; Mon, 02 Jan 2023 11:22:13 -0500 Received: by mail-wr1-f54.google.com with SMTP id w1so14613157wrt.8 for <60489@debbugs.gnu.org>; Mon, 02 Jan 2023 08:22:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=+QHSTglfV7EOtQza+geqTv8UuQ2O8HckxIOQ9HdrCAM=; b=OooaePgrD5nk/fuQLFc9xvSHxjUA1jRNm8n9EHtvkSnAV5P9D7RUCv2k3yY6hSVdQm hSX+q8iqxw4CYgQ3MbfgI8oCFiRBYAmzVCwyLFoenVSsf+tRiiRDTcPmmLElQFooZTCk BrKmqbSlNayTgduHHdr0DdpFNPZR5aqMEr28GY2CcA3YcU26lNZl2O6BAJ0mjmpeCGQ7 ORFJxX1KIEa8pjsOL3J6U6PGt7/dJV52Ihu0aqZ1MskfCYVL8WOebeWOspFg5hTfV4D0 vcZ2t4XPPZ1Ebw9vuUndWujWg6tXhkSX156jygwNVIjnL5KrsO+VsZ3a3yYiRf3Rtz4T JkmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+QHSTglfV7EOtQza+geqTv8UuQ2O8HckxIOQ9HdrCAM=; b=dAQyYzzDyCyuR9HToVUxkwQVEKzcbhL0Y3kFG6pKeGes2SWupLXWbOW7Mnt656H1pd rvZ6QT0+uwQXBVUpdF85ki+qAOX3QL0oTogf1Frif4gKxOjyeSAfvgZEYP3FPzo+71B8 h/8QvzB0q7GpDcPY+Bm+A0ZLIkJrNrTEGlJ/0ibPNz5S8UEiMDJLj5FqndW1WTT/pqQl j62CPIga9e0+sNNtZHJLXHjNcDc6f0dNp8ljTsHSuvolN52rwgY56fDzAhH5CX2a9Tuz xQ9M2lXICSKjxoXbBe/A8o9/PV7FTLTel39+6r3cYnXcHfXlaSUBfw4wDf9I+N1Zberd /CDQ== X-Gm-Message-State: AFqh2koIW/9aQVmX6kQ1xEwCNonjopc00SdtmZKQRLsrJCDpLmTAEBHg 2P6zQ/+6KLsyhxs2AUzyH4okBvBZt54= X-Google-Smtp-Source: AMrXdXsoeMiNIQNcDk4jWpvnzIbxw7gsmbcF7POBzPLWvbr9IQR8PiCPFnbQyhofcoz7Dve5XzWslA== X-Received: by 2002:adf:e50c:0:b0:296:3eb0:f91f with SMTP id j12-20020adfe50c000000b002963eb0f91fmr4138954wrm.2.1672676524798; Mon, 02 Jan 2023 08:22:04 -0800 (PST) Received: from [192.168.1.9] (95-44-90-175-dynamic.agg2.lod.rsl-rtd.eircom.net. [95.44.90.175]) by smtp.googlemail.com with ESMTPSA id g3-20020a5d6983000000b00287da7ee033sm14771655wru.46.2023.01.02.08.22.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Jan 2023 08:22:04 -0800 (PST) Content-Type: multipart/mixed; boundary="------------8CuLWp3BMsIp9KwL2sVwyRR3" Message-ID: <99b95a95-78e4-1319-d1e7-0d57af6453b9@draigBrady.com> Date: Mon, 2 Jan 2023 16:22:03 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.0 Content-Language: en-US References: <20230102063620.GA1629213@rfd.leadboat.com> <87a631oyjy.fsf@igel.home> From: =?UTF-8?Q?P=C3=A1draig?= Brady In-Reply-To: <87a631oyjy.fsf@igel.home> X-Spam-Score: -0.9 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) This is a multi-part message in MIME format. --------------8CuLWp3BMsIp9KwL2sVwyRR3 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 02/01/2023 13:28, Andreas Schwab wrote: > On Jan 02 2023, Pádraig Brady wrote: > >> + /* Note error set is consistent with copy_file_range(). */ >> + bool no_clone_attempted = errno == ENOSYS || is_ENOTSUP (errno) >> + || errno == EINVAL || errno == EBADF >> + || errno == EXDEV || errno == ETXTBSY; > > Should this be refactored to avoid duplication? Yes good call. We should also refactor the handling of clone failure to also apply to the usage of fclonefileat() on macOS. Updated patch attached. cheers, Pádraig --------------8CuLWp3BMsIp9KwL2sVwyRR3 Content-Type: text/x-patch; charset=UTF-8; name="copy-clone-fail.patch" Content-Disposition: attachment; filename="copy-clone-fail.patch" Content-Transfer-Encoding: base64 RnJvbSBkMTNiZGU0NmE0ODAzNmYxN2MzZmI2NTE5NzdkNzViOGQzZWI3ZWRhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogTW9uLCAyIEphbiAyMDIzIDEzOjA3OjQxICsw MDAwClN1YmplY3Q6IFtQQVRDSF0gY29weTogaW1tZWRpYXRlbHkgZmFpbCB3aXRoIHRyYW5z aWVudCBlcnJvcnMgZnJvbSBGSUNMT05FCgoqIHNyYy9jb3B5LmMgKGhhbmRsZV9jbG9uZV9m YWlsKTogQSBuZXcgZnVuY3Rpb24gcmVmYWN0b3JlZApmcm9tIGNvcHlfcmVnKCkgdG8gaGFu ZGxlIGZhaWx1cmVzIGZyb20gRklDTE9ORSBvciBmY2xvbmVmaWxlYXQoKS4KKGNvcHlfcmVn KTogRmFpbCB3aXRoIGFsbCBlcnJvcnMgZnJvbSBGSUNMT05FLAp1bmxlc3MgdGhleSdyZSBm cm9tIHRoZSBzZXQgaW5kaWNhdGluZyB0aGUgZmlsZSBzeXN0ZW0Kb3IgZmlsZSBkbyBub3Qg c3VwcG9ydCB0aGUgY2xvbmUgb3BlcmF0aW9uLgpBbHNvIGZhaWwgd2l0aCBlcnJvcnMgZnJv bSBmY2xvbmVmaWxlYXQoKSBpZiB0aGV5J3JlCmZyb20gdGhlIHNldCBpbmRpY2F0aW5nIGEg dHJhbnNpZW50IGZhaWx1cmUgZm9yIHRoZSBmaWxlLgooc3BhcnNlX2NvcHkpOiBDYWxsIHRo ZSByZWZhY3RvcmVkIGlzX0NMT05FTk9UU1VQKCkKd2hpY2ggaXMgbm93IGFsc28gdXNlZCBi eSB0aGUgbmV3IGhhbmRsZV9jbG9uZV9mYWlsKCkgZnVuY3Rpb24uCiogTkVXUzogTWVudGlv biB0aGUgYnVnIGZpeC4gIEFsc28gbWVudGlvbiBleHBsaWNpdGx5CnRoZSBvbGRlciAtLXJl Zmxpbms9YXV0byBkZWZhdWx0IGNoYW5nZSB0byBhaWQgc2VhcmNoaW5nLgoqIGNmZy5tazog QWRqdXN0IG9sZF9ORVdTX2hhc2ggd2l0aCBgbWFrZSB1cGRhdGUtTkVXUy1oYXNoYC4KRml4 ZXMgaHR0cHM6Ly9idWdzLmdudS5vcmcvNjA0ODkKLS0tCiBORVdTICAgICAgIHwgIDggKysr KysKIGNmZy5tayAgICAgfCAgMiArLQogc3JjL2NvcHkuYyB8IDk0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFu Z2VkLCA3OSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9O RVdTIGIvTkVXUwppbmRleCBmNDMxODI3NTcuLjBmYmZlN2IwOSAxMDA2NDQKLS0tIGEvTkVX UworKysgYi9ORVdTCkBAIC0xMyw2ICsxMywxMyBAQCBHTlUgY29yZXV0aWxzIE5FV1MgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gb3V0bGluZSAtKi0KICAgJ2Nw IC1yeCAvIC9tbnQnIG5vIGxvbmdlciBjb21wbGFpbnMgImNhbm5vdCBjcmVhdGUgZGlyZWN0 b3J5IC9tbnQvIi4KICAgW2J1ZyBpbnRyb2R1Y2VkIGluIGNvcmV1dGlscy05LjFdCiAKKyAg Y3AsIG12LCBhbmQgaW5zdGFsbCwgbm93IGltbWVkaWF0ZWx5IGFja25vd2xlZGdlIHRyYW5z aWVudCBlcnJvcnMKKyAgd2hlbiBjcmVhdGluZyBjb3B5LW9uLXdyaXRlIG9yIGNsb25lZCBy ZWZsaW5rIGZpbGVzLCBvbiBzdXBwb3J0aW5nCisgIGZpbGUgc3lzdGVtcyBsaWtlIFhGUywg QlRSRlMsIEFQRlMsIGV0Yy4KKyAgUHJldmlvdXNseSB0aGV5IHdvdWxkIGhhdmUgdHJpZWQg YWdhaW4gd2l0aCBvdGhlciBjb3B5IG1ldGhvZHMKKyAgd2hpY2ggbWF5IGhhdmUgcmVzdWx0 ZWQgaW4gZGF0YSBjb3JydXB0aW9uLgorICBbYnVnIGludHJvZHVjZWQgaW4gY29yZXV0aWxz LTcuNSBhbmQgZW5hYmxlZCBieSBkZWZhdWx0IGluIGNvcmV1dGlscy05LjBdCisKICAgJ212 IC0tYmFja3VwPXNpbXBsZSBmIGQvJyBubyBsb25nZXIgbWlzdGFrZW5seSBiYWNrcyB1cCBk L2YgdG8gZn4uCiAgIFtidWcgaW50cm9kdWNlZCBpbiBjb3JldXRpbHMtOS4xXQogCkBAIC0y ODMsNiArMjkwLDcgQEAgR05VIGNvcmV1dGlscyBORVdTICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLSotIG91dGxpbmUgLSotCiAqKiBDaGFuZ2VzIGluIGJlaGF2aW9y CiAKICAgY3AgYW5kIGluc3RhbGwgbm93IGRlZmF1bHQgdG8gY29weS1vbi13cml0ZSAoQ09X KSBpZiBhdmFpbGFibGUuCisgIEkuZS4sIGNwIG5vdyB1c2VzIC0tcmVmbGluaz1hdXRvIG1v ZGUgYnkgZGVmYXVsdC4KIAogICBjcCwgaW5zdGFsbCBhbmQgbXYgbm93IHVzZSB0aGUgY29w eV9maWxlX3JhbmdlIHN5c2NhbGwgaWYgYXZhaWxhYmxlLgogICBBbHNvLCB0aGV5IHVzZSBs c2VlaytTRUVLX0hPTEUgcmF0aGVyIHRoYW4gaW9jdGwrRlNfSU9DX0ZJRU1BUCBvbiBzcGFy c2UKZGlmZiAtLWdpdCBhL2NmZy5tayBiL2NmZy5tawppbmRleCAxNzlhNTFkMWMuLmM5YjJk NDMyNiAxMDA2NDQKLS0tIGEvY2ZnLm1rCisrKyBiL2NmZy5tawpAQCAtNDksNyArNDksNyBA QCBleHBvcnQgVkVSQk9TRSA9IHllcwogIyA0OTE0MTUyIDllCiBleHBvcnQgWFpfT1BUID0g LThlCiAKLW9sZF9ORVdTX2hhc2ggPSBmMzY1ZTBjZjJjNzg5MGM2MTdkZjZhYmU3MDYxNWZj ZQorb2xkX05FV1NfaGFzaCA9IDQ5MjY5ZDhkOTlmNDg4OGE0ZTk1NWQyOGNkYTUwMDkxCiAK ICMgQWRkIGFuIGV4ZW1wdGlvbiBmb3Igc2NfbWFrZWZpbGVfYXRfYXRfY2hlY2suCiBfbWFr ZWZpbGVfYXRfYXRfY2hlY2tfZXhjZXB0aW9ucyA9ICcgJiYgIS9eY3VfaW5zdGFsbF9wcm9n LyAmJiAhL2R5bmFtaWMtZGVwLycKZGlmZiAtLWdpdCBhL3NyYy9jb3B5LmMgYi9zcmMvY29w eS5jCmluZGV4IDMxMGM4YmYxNC4uMTA1OGIwOGVjIDEwMDY0NAotLS0gYS9zcmMvY29weS5j CisrKyBiL3NyYy9jb3B5LmMKQEAgLTIyNCw2ICsyMjQsMTggQEAgY3JlYXRlX2hvbGUgKGlu dCBmZCwgY2hhciBjb25zdCAqbmFtZSwgYm9vbCBwdW5jaF9ob2xlcywgb2ZmX3Qgc2l6ZSkK IH0KIAogCisvKiBXaGV0aGVyIHRoZSBlcnJubyBmcm9tIEZJQ0xPTkUsIG9yIGNvcHlfZmls ZV9yYW5nZQorICAgaW5kaWNhdGVzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0 aGlzIGZpbGUgb3IgZmlsZSBzeXN0ZW0uICAqLworCitzdGF0aWMgYm9vbAoraXNfQ0xPTkVO T1RTVVAgKGludCBlcnIpCit7CisgIHJldHVybiBlcnIgPT0gRU5PU1lTIHx8IGlzX0VOT1RT VVAgKGVycikKKyAgICAgICAgIHx8IGVyciA9PSBFSU5WQUwgfHwgZXJyID09IEVCQURGCisg ICAgICAgICB8fCBlcnIgPT0gRVhERVYgfHwgZXJyID09IEVUWFRCU1k7Cit9CisKKwogLyog Q29weSB0aGUgcmVndWxhciBmaWxlIG9wZW4gb24gU1JDX0ZEL1NSQ19OQU1FIHRvIERTVF9G RC9EU1RfTkFNRSwKICAgIGhvbm9yaW5nIHRoZSBNQUtFX0hPTEVTIHNldHRpbmcgYW5kIHVz aW5nIHRoZSBCVUZfU0laRS1ieXRlIGJ1ZmZlcgogICAgKkFCVUYgZm9yIHRlbXBvcmFyeSBz dG9yYWdlLCBhbGxvY2F0aW5nIGl0IGxhemlseSBpZiAqQUJVRiBpcyBudWxsLgpAQCAtMjY3 LDkgKzI3OSw3IEBAIHNwYXJzZV9jb3B5IChpbnQgc3JjX2ZkLCBpbnQgZGVzdF9mZCwgY2hh ciAqKmFidWYsIHNpemVfdCBidWZfc2l6ZSwKICAgICAgICAgICB9CiAgICAgICAgIGlmIChu X2NvcGllZCA8IDApCiAgICAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm5vID09IEVO T1NZUyB8fCBpc19FTk9UU1VQIChlcnJubykKLSAgICAgICAgICAgICAgICB8fCBlcnJubyA9 PSBFSU5WQUwgfHwgZXJybm8gPT0gRUJBREYKLSAgICAgICAgICAgICAgICB8fCBlcnJubyA9 PSBFWERFViB8fCBlcnJubyA9PSBFVFhUQlNZKQorICAgICAgICAgICAgaWYgKGlzX0NMT05F Tk9UU1VQIChlcnJubykpCiAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAv KiBjb3B5X2ZpbGVfcmFuZ2UgbWlnaHQgbm90IGJlIGVuYWJsZWQgaW4gc2VjY29tcCBmaWx0 ZXJzLApAQCAtMTA2NCw2ICsxMDc0LDQyIEBAIGluZmVyX3NjYW50eXBlIChpbnQgZmQsIHN0 cnVjdCBzdGF0IGNvbnN0ICpzYiwKIH0KIAogCisvKiBIYW5kbGUgZmFpbHVyZSBmcm9tIEZJ Q0xPTkUgb3IgZmNsb25lZmlsZWF0LgorICAgUmV0dXJuIEZBTFNFIGlmIGl0J3MgYSB0ZXJt aW5hbCBmYWlsdXJlIGZvciB0aGlzIGZpbGUuICAqLworCitzdGF0aWMgYm9vbAoraGFuZGxl X2Nsb25lX2ZhaWwgKGludCBkc3RfZGlyZmQsIGNoYXIgY29uc3QqIGRzdF9yZWxuYW1lLAor ICAgICAgICAgICAgICAgICAgIGNoYXIgY29uc3QqIHNyY19uYW1lLCBjaGFyIGNvbnN0KiBk c3RfbmFtZSwKKyAgICAgICAgICAgICAgICAgICBpbnQgZGVzdF9kZXNjLCBib29sIG5ld19k c3QsIGVudW0gUmVmbGlua190eXBlIHJlZmxpbmtfbW9kZSkKK3sKKyAgLyogSWYgdGhlIGNs b25lIG9wZXJhdGlvbiBpcyBjcmVhdGluZyB0aGUgZGVzdGluYXRpb24sCisgICAgIHRoZW4g ZG9uJ3QgdHJ5IGFuZCBjYXRlciBmb3IgYWxsIG5vbiB0cmFuc2llbnQgZmlsZSBzeXN0ZW0g ZXJyb3JzLAorICAgICBhbmQgaW5zdGVhZCBvbmx5IGNhdGVyIGZvciBzcGVjaWZpYyB0cmFu c2llbnQgZXJyb3JzLiAgKi8KKyAgYm9vbCB0cmFuc2llbnRfZmFpbHVyZTsKKyAgaWYgKGRl c3RfZGVzYyA8IDApIC8qIGN1cnJlbnRseSBmb3IgZmNsb25lZmlsZWF0KCkuICAqLworICAg IHRyYW5zaWVudF9mYWlsdXJlID0gZXJybm8gPT0gRUlPIHx8IGVycm5vID09IEVOT01FTSB8 fCBlcnJubyA9PSBFTk9TUEM7CisgIGVsc2UgLyogY3VycmVudGx5IGZvciBGSUNMT05FLiAg Ki8KKyAgICB0cmFuc2llbnRfZmFpbHVyZSA9ICEgaXNfQ0xPTkVOT1RTVVAgKGVycm5vKTsK KworICBpZiAocmVmbGlua19tb2RlID09IFJFRkxJTktfQUxXQVlTIHx8IHRyYW5zaWVudF9m YWlsdXJlKQorICAgIGVycm9yICgwLCBlcnJubywgXygiZmFpbGVkIHRvIGNsb25lICVzIGZy b20gJXMiKSwKKyAgICAgICAgICAgcXVvdGVhZl9uICgwLCBkc3RfbmFtZSksIHF1b3RlYWZf biAoMSwgc3JjX25hbWUpKTsKKworICAvKiBSZW1vdmUgdGhlIGRlc3RpbmF0aW9uIGlmIGNw IC0tcmVmbGluaz1hbHdheXMgY3JlYXRlZCBpdAorICAgICBidXQgY2xvbmVkIG5vIGRhdGEu ICAqLworICBpZiAobmV3X2RzdCAvKiBjdXJyZW50bHkgbm90IGZvciBmY2xvbmVmaWxlYXQo KS4gICovCisgICAgICAmJiByZWZsaW5rX21vZGUgPT0gUkVGTElOS19BTFdBWVMKKyAgICAg ICYmICgoISB0cmFuc2llbnRfZmFpbHVyZSkgfHwgbHNlZWsgKGRlc3RfZGVzYywgMCwgU0VF S19FTkQpID09IDApCisgICAgICAmJiB1bmxpbmthdCAoZHN0X2RpcmZkLCBkc3RfcmVsbmFt ZSwgMCkgIT0gMCAmJiBlcnJubyAhPSBFTk9FTlQpCisgICAgZXJyb3IgKDAsIGVycm5vLCBf KCJjYW5ub3QgcmVtb3ZlICVzIiksIHF1b3RlYWYgKGRzdF9uYW1lKSk7CisKKyAgaWYgKHJl ZmxpbmtfbW9kZSA9PSBSRUZMSU5LX0FMV0FZUyB8fCB0cmFuc2llbnRfZmFpbHVyZSkKKyAg ICByZXR1cm4gZmFsc2U7CisKKyAgcmV0dXJuIHRydWU7Cit9CisKKwogLyogQ29weSBhIHJl Z3VsYXIgZmlsZSBmcm9tIFNSQ19OQU1FIHRvIERTVF9OQU1FIGFrYSBEU1RfRElSRkQrRFNU X1JFTE5BTUUuCiAgICBJZiB0aGUgc291cmNlIGZpbGUgY29udGFpbnMgaG9sZXMsIGNvcGll cyBob2xlcyBhbmQgYmxvY2tzIG9mIHplcm9zCiAgICBpbiB0aGUgc291cmNlIGZpbGUgYXMg aG9sZXMgaW4gdGhlIGRlc3RpbmF0aW9uIGZpbGUuCkBAIC0xMTk4LDEzICsxMjQ0LDIyIEBA IGNvcHlfcmVnIChjaGFyIGNvbnN0ICpzcmNfbmFtZSwgY2hhciBjb25zdCAqZHN0X25hbWUs CiAjIGlmbmRlZiBDTE9ORV9OT09XTkVSQ09QWQogIyAgZGVmaW5lIENMT05FX05PT1dORVJD T1BZIDAKICMgZW5kaWYKLSAgICAgIGludCBjbG9uZV9mbGFncyA9IHgtPnByZXNlcnZlX293 bmVyc2hpcCA/IDAgOiBDTE9ORV9OT09XTkVSQ09QWTsKKyAgICAgIGludCBmY19mbGFncyA9 IHgtPnByZXNlcnZlX293bmVyc2hpcCA/IDAgOiBDTE9ORV9OT09XTkVSQ09QWTsKICAgICAg IGlmIChkYXRhX2NvcHlfcmVxdWlyZWQgJiYgeC0+cmVmbGlua19tb2RlCiAgICAgICAgICAg JiYgeC0+cHJlc2VydmVfbW9kZSAmJiB4LT5wcmVzZXJ2ZV90aW1lc3RhbXBzCi0gICAgICAg ICAgJiYgKHgtPnByZXNlcnZlX293bmVyc2hpcCB8fCBDTE9ORV9OT09XTkVSQ09QWSkKLSAg ICAgICAgICAmJiAoZmNsb25lZmlsZWF0IChzb3VyY2VfZGVzYywgZHN0X2RpcmZkLCBkc3Rf cmVsbmFtZSwgY2xvbmVfZmxhZ3MpCi0gICAgICAgICAgICAgID09IDApKQotICAgICAgICBn b3RvIGNsb3NlX3NyY19kZXNjOworICAgICAgICAgICYmICh4LT5wcmVzZXJ2ZV9vd25lcnNo aXAgfHwgQ0xPTkVfTk9PV05FUkNPUFkpKQorICAgICAgICB7CisgICAgICAgICAgaWYgKGZj bG9uZWZpbGVhdCAoc291cmNlX2Rlc2MsIGRzdF9kaXJmZCwgZHN0X3JlbG5hbWUsIGZjX2Zs YWdzKSA9PSAwKQorICAgICAgICAgICAgZ290byBjbG9zZV9zcmNfZGVzYzsKKyAgICAgICAg ICBlbHNlIGlmICghIGhhbmRsZV9jbG9uZV9mYWlsIChkc3RfZGlyZmQsIGRzdF9yZWxuYW1l LCBzcmNfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk c3RfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwg ZmFsc2UgLyogV2UgZGlkbid0IGNyZWF0ZSBkc3QgICovLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHgtPnJlZmxpbmtfbW9kZSkpCisgICAgICAgICAgICB7 CisgICAgICAgICAgICAgIHJldHVybl92YWwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgZ290 byBjbG9zZV9zcmNfZGVzYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogI2VuZGlmCiAK ICAgICAgIC8qIFRvIGFsbG93IGNvcHlpbmcgeGF0dHJzIG9uIHJlYWQtb25seSBmaWxlcywg Y3JlYXRlIHdpdGggdSt3LgpAQCAtMTI3NSwyMyArMTMzMCwxNCBAQCBjb3B5X3JlZyAoY2hh ciBjb25zdCAqc3JjX25hbWUsIGNoYXIgY29uc3QgKmRzdF9uYW1lLAogICAgIHsKICAgICAg IGlmIChjbG9uZV9maWxlIChkZXN0X2Rlc2MsIHNvdXJjZV9kZXNjKSA9PSAwKQogICAgICAg ICBkYXRhX2NvcHlfcmVxdWlyZWQgPSBmYWxzZTsKLSAgICAgIGVsc2UgaWYgKHgtPnJlZmxp bmtfbW9kZSA9PSBSRUZMSU5LX0FMV0FZUykKKyAgICAgIGVsc2UKICAgICAgICAgewotICAg ICAgICAgIGVycm9yICgwLCBlcnJubywgXygiZmFpbGVkIHRvIGNsb25lICVzIGZyb20gJXMi KSwKLSAgICAgICAgICAgICAgICAgcXVvdGVhZl9uICgwLCBkc3RfbmFtZSksIHF1b3RlYWZf biAoMSwgc3JjX25hbWUpKTsKLQotICAgICAgICAgIC8qIFJlbW92ZSB0aGUgZGVzdGluYXRp b24gaWYgY3AgLS1yZWZsaW5rPWFsd2F5cyBjcmVhdGVkIGl0Ci0gICAgICAgICAgICAgYnV0 IGNsb25lZCBubyBkYXRhLiAgSWYgY2xvbmVfZmlsZSBmYWlsZWQgd2l0aAotICAgICAgICAg ICAgIEVPUE5PVFNVUFAsIEVYREVWIG9yIEVJTlZBTCBubyBkYXRhIHdlcmUgY29waWVkIHNv IGRvIG5vdAotICAgICAgICAgICAgIGdvIHRvIHRoZSBleHBlbnNlIG9mIGxzZWVraW5nLiAg Ki8KLSAgICAgICAgICBpZiAoKm5ld19kc3QKLSAgICAgICAgICAgICAgJiYgKGlzX0VOT1RT VVAgKGVycm5vKSB8fCBlcnJubyA9PSBFWERFViB8fCBlcnJubyA9PSBFSU5WQUwKLSAgICAg ICAgICAgICAgICAgIHx8IGxzZWVrIChkZXN0X2Rlc2MsIDAsIFNFRUtfRU5EKSA9PSAwKQot ICAgICAgICAgICAgICAmJiB1bmxpbmthdCAoZHN0X2RpcmZkLCBkc3RfcmVsbmFtZSwgMCkg IT0gMCAmJiBlcnJubyAhPSBFTk9FTlQpCi0gICAgICAgICAgICBlcnJvciAoMCwgZXJybm8s IF8oImNhbm5vdCByZW1vdmUgJXMiKSwgcXVvdGVhZiAoZHN0X25hbWUpKTsKLQotICAgICAg ICAgIHJldHVybl92YWwgPSBmYWxzZTsKLSAgICAgICAgICBnb3RvIGNsb3NlX3NyY19hbmRf ZHN0X2Rlc2M7CisgICAgICAgICAgaWYgKCEgaGFuZGxlX2Nsb25lX2ZhaWwgKGRzdF9kaXJm ZCwgZHN0X3JlbG5hbWUsIHNyY19uYW1lLCBkc3RfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGVzdF9kZXNjLCAqbmV3X2RzdCwgeC0+cmVmbGlua19tb2Rl KSkKKyAgICAgICAgICAgeworICAgICAgICAgICAgIHJldHVybl92YWwgPSBmYWxzZTsKKyAg ICAgICAgICAgICBnb3RvIGNsb3NlX3NyY19hbmRfZHN0X2Rlc2M7CisgICAgICAgICAgIH0K ICAgICAgICAgfQogICAgIH0KIAotLSAKMi4yNi4yCgo= --------------8CuLWp3BMsIp9KwL2sVwyRR3-- From unknown Tue Jun 17 01:43:46 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Noah Misch Subject: bug#60489: closed (Re: bug#60489: Programs should exit after EIO from FICLONE or copy_file_range()) Message-ID: References: <20230102063620.GA1629213@rfd.leadboat.com> X-Gnu-PR-Message: they-closed 60489 X-Gnu-PR-Package: coreutils Reply-To: 60489@debbugs.gnu.org Date: Fri, 06 Jan 2023 14:48:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1673016482-19441-1" This is a multi-part message in MIME format... ------------=_1673016482-19441-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #60489: Programs should exit after EIO from FICLONE or copy_file_range() which was filed against the coreutils package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 60489@debbugs.gnu.org. --=20 60489: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D60489 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1673016482-19441-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 60489-done) by debbugs.gnu.org; 6 Jan 2023 14:47:53 +0000 Received: from localhost ([127.0.0.1]:54141 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pDo0f-00052V-0O for submit@debbugs.gnu.org; Fri, 06 Jan 2023 09:47:53 -0500 Received: from mail-wm1-f54.google.com ([209.85.128.54]:43779) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pDo0d-00051j-GB for 60489-done@debbugs.gnu.org; Fri, 06 Jan 2023 09:47:51 -0500 Received: by mail-wm1-f54.google.com with SMTP id k22-20020a05600c1c9600b003d1ee3a6289so1222524wms.2 for <60489-done@debbugs.gnu.org>; Fri, 06 Jan 2023 06:47:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=/mjQPA30qjYODdVYTZxltmSzCobHSDzbxs5uBQykxpI=; b=PxeOwVo4inAT5VigtZO0f9+b76Zmhl85iekSJBO29RRTEp5CouvHyUXj6BEmzkna6z HSzR8fMYB2QMDCpQBXMTb5mJbwlGYvAMTacugqTIkO1KtiQicfXv6VIK522dW1NnU0jY p2OVYvkNPHTU7QQQ9EObLiK4oNcdmnydJgFTOQsoolJt+71D91wgu2ibcZdH02CkhAlH 9kpiuD+IGhAihdA13O2SLZkYaXv+9l/VrUbqWZIu+bRCGiKSRzDuvQYZ6wm87SFyYjyb 3S2pYCxkq+EssSnPFIMWcU+SS6RuPqMA47wixQY3YSNcaH6zzqHbeIpurbcEivvR2Io+ 4MSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/mjQPA30qjYODdVYTZxltmSzCobHSDzbxs5uBQykxpI=; b=x7cRZLfiQ6KTT10ZQY2yx4j4FM1fKco5TheOQZ9nCNbU+OMkb2yKY3kHSlg3S/ksmE GYEXFK7xh7czEGjzsOdMqH3Ku9zZ++tfIXlgofBX2m0uT3O5evY8jFKIXLkb7ZU/EaKp vhBEW/p0J9wEb/79xR5zaAqBzq2kxroPqzBZtK2KFK5bQAz0f6lxEsL+dWMIO2rjgGUL YzSSbIi0YHp1F59tpUI9U+QTxAsE7iO9Wc7HUt6HiXXdM/1dcbAcAu0wZUZind1A0n+n jz27oOu0EOepeQoH/RAMkB9y5Mmzd4e7Q89GrbXl0r+CbymmV8s/skTe7mw8ECdIJySJ WJVw== X-Gm-Message-State: AFqh2krcGvWLWgiH4n4Auaj5IL6PdltKlGOLEZZTS5pCcivjXNra5UGj ECEQ3EK/ltXd8QekbiveFu4= X-Google-Smtp-Source: AMrXdXsHBnBabU4QXZPhIEubfkurecio2pNIZy4Q5bkuywFrSYkaoD/oy3Cx3nH3hzO3Q8/cXsu4GA== X-Received: by 2002:a7b:c3c9:0:b0:3d2:e28:647f with SMTP id t9-20020a7bc3c9000000b003d20e28647fmr47691762wmj.15.1673016465443; Fri, 06 Jan 2023 06:47:45 -0800 (PST) Received: from [192.168.1.9] (95-44-90-175-dynamic.agg2.lod.rsl-rtd.eircom.net. [95.44.90.175]) by smtp.googlemail.com with ESMTPSA id r7-20020a05600c458700b003c6b7f5567csm13686460wmo.0.2023.01.06.06.47.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 06 Jan 2023 06:47:44 -0800 (PST) Message-ID: Date: Fri, 6 Jan 2023 14:47:43 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.0 Subject: Re: bug#60489: Programs should exit after EIO from FICLONE or copy_file_range() Content-Language: en-US From: =?UTF-8?Q?P=c3=a1draig_Brady?= To: Andreas Schwab References: <20230102063620.GA1629213@rfd.leadboat.com> <87a631oyjy.fsf@igel.home> <99b95a95-78e4-1319-d1e7-0d57af6453b9@draigBrady.com> In-Reply-To: <99b95a95-78e4-1319-d1e7-0d57af6453b9@draigBrady.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 60489-done Cc: 60489-done@debbugs.gnu.org, Noah Misch X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) On 02/01/2023 16:22, Pádraig Brady wrote: > On 02/01/2023 13:28, Andreas Schwab wrote: >> On Jan 02 2023, Pádraig Brady wrote: >> >>> + /* Note error set is consistent with copy_file_range(). */ >>> + bool no_clone_attempted = errno == ENOSYS || is_ENOTSUP (errno) >>> + || errno == EINVAL || errno == EBADF >>> + || errno == EXDEV || errno == ETXTBSY; >> >> Should this be refactored to avoid duplication? > > Yes good call. > We should also refactor the handling of clone failure > to also apply to the usage of fclonefileat() on macOS. > > Updated patch attached. Pushed. Marking this as done. thanks, Pádraig ------------=_1673016482-19441-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 2 Jan 2023 08:53:56 +0000 Received: from localhost ([127.0.0.1]:42411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCGZv-0005Sq-PU for submit@debbugs.gnu.org; Mon, 02 Jan 2023 03:53:56 -0500 Received: from lists.gnu.org ([209.51.188.17]:50754) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCEQs-0001w3-TU for submit@debbugs.gnu.org; Mon, 02 Jan 2023 01:36:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pCEQs-0006y3-NR for bug-coreutils@gnu.org; Mon, 02 Jan 2023 01:36:26 -0500 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pCEQq-0001tt-Mf for bug-coreutils@gnu.org; Mon, 02 Jan 2023 01:36:26 -0500 Received: by mail-qt1-x82d.google.com with SMTP id x11so21872053qtv.13 for ; Sun, 01 Jan 2023 22:36:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:from:to:cc:subject:date:message-id:reply-to; bh=TBBX1Qo4UEHginBb5ENHSpcu9ZaBkP8oso78nldDuEI=; b=B7PuGPPCN/Kf6UlIhLDioLPNldxbek5jlCLfDBd6VY6W7pfHno7ZFXOYxaj0+x5e14 0E1MpoWJaKnjr2scd8o0pXtr1uQ4j/KNbu7D3FTGG4AS074m53V03V2TQEV9evmm+nEs Cm5gI2tKJz96RKleHjT92GYugpIOxJ12s6N/M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TBBX1Qo4UEHginBb5ENHSpcu9ZaBkP8oso78nldDuEI=; b=UcwakY9SFO4HoK1tvHU3cGAAyR/UpO9mJgEV2bhFHzANh4OReiL3oznx2qapheHeqL 8eXxLsihAbE3iED/9JBuTWxZpi4mWYRzVEyrkKI4s/XmTZ+Mj9snq9xILQoRAOK5y7Kx GEPcPhTMfx9ta3y2Oa0iOm0k/2oUUiDuK57TkN3nJNqzKdB7yIz+JMtjFf33xZaZdREn h4u6ja1ZKQ1QaOFYBlErpOZaaRYThHuGbOoc9ZW5xy6jMj8oMnXLwCJOcXH/ybckKy2b JV4uo1VsJINW+55fpyagsqbZVe9g/LkbjiCD0XIm3F3tqww4gWc/JaZtMJXPDSVvp6Ay KrYg== X-Gm-Message-State: AFqh2kpA89Xbqk4lWoFVM+K8TX0kTqlg7UePREjul8aYJVAmIUDUz+hO c81tw0Lobaono1N//hXvXReoiLjnyTnV0uCy X-Google-Smtp-Source: AMrXdXuiu4M81nxgdSofyKIqmfp4sfPjS3DSV3ePdkzL0W4tYQpbRBHYCKbcL2jlK/mXM01xZvNoNw== X-Received: by 2002:ac8:4984:0:b0:3a8:14ce:73db with SMTP id f4-20020ac84984000000b003a814ce73dbmr53892400qtq.17.1672641382962; Sun, 01 Jan 2023 22:36:22 -0800 (PST) Received: from rfd.leadboat.com ([2600:1702:a20:5750::2e]) by smtp.gmail.com with ESMTPSA id q22-20020a05620a0d9600b006eee3a09ff3sm11430195qkl.69.2023.01.01.22.36.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 01 Jan 2023 22:36:22 -0800 (PST) Date: Sun, 1 Jan 2023 22:36:20 -0800 From: Noah Misch To: bug-coreutils@gnu.org Subject: Programs should exit after EIO from FICLONE or copy_file_range() Message-ID: <20230102063620.GA1629213@rfd.leadboat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) Received-SPF: none client-ip=2607:f8b0:4864:20::82d; envelope-from=noah@leadboat.com; helo=mail-qt1-x82d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Mon, 02 Jan 2023 03:53:53 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Because Debian coreutils 9.1-1 "cp" silently falls back to copy_file_range() after FICLONE reports EIO, "cp" can transfer incorrect bytes. Linux syscalls having a file descriptor parameter report EIO after a fault in the underlying device. The affected file is not recoverable in the general case, but syscall outcomes after the EIO don't reflect that. For example, consider FICLONE returning EIO for a fault during source file writeback. The kernel will mark "clean" the affected page cache entries and clear the EIO state. If the page cache evicts those pages, their file offsets revert to the last written-back values if any, else zeros. If userspace issues a syscall that bypasses the page cache, like copy_file_range() or another FICLONE, that syscall clones the last written-back state or zeroes. See https://lore.kernel.org/linux-xfs/20221108172436.GA3613139@rfd.leadboat.com for a "cp" and "cat" test script, background, and discussion. I recommend instead reporting the EIO and terminating when FICLONE or copy_file_range() fails with EIO. One could argue that ENOSPC also warrants termination, since no fallback reduces space usage. For other errno values, fallback to the next transfer strategy, like today. An alternative would be to fallback from FICLONE to copy_file_range() only after known-appropriate errors EBADF, EINVAL, EOPNOTSUPP, ETXTBSY, and EXDEV. That alternative wins if future FICLONE reports an additional termination-deserving errno value. Since just EIO needs termination today, I bet new errno values are more likely than not to deserve fallback. What do you think? Thanks, nm ------------=_1673016482-19441-1--