Received: by 2002:a05:7412:a9a8:b0:f9:92ae:e617 with SMTP id o40csp128982rdh; Wed, 20 Dec 2023 19:09:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IGMxUm9k1uNXkJVSsoBLqfD4s2UUQz/06H9wGQ7OYZGZmDLWrJePgOwvOx7TOo6EXPAClUi X-Received: by 2002:a17:906:a045:b0:a1e:437c:6a6d with SMTP id bg5-20020a170906a04500b00a1e437c6a6dmr8279128ejb.95.1703128160127; Wed, 20 Dec 2023 19:09:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703128160; cv=none; d=google.com; s=arc-20160816; b=N0XqwxYsf4NLxKd0+Qeltta0WPB+5BITDQpDMxdutpm9Z0aoufU+RwGddG/noRHtw3 6L5KnDReCeqRj7lbx0vXt5uaZ1KHBU2ANXA6jtNR0HC+7DEfl3Gqjjy7G+/iRg1/Cmuz 9gt9ZPbLr//ojL0QTeHVyxxSVlCNtnA+MbeZa3wpgPgBHnB+SKnpq909oO0rz+mlhwdh dxOC3xpBbt9qAlZLrplAIVrUMUiGxc9x1bcSmHIKsT762UneH22MHNgdWNxAiV6HEZB/ tDBszfI9Xd1GkxaeCGobYamxMlsXFZWgzZW27wZqhxNBe1iY6iiA/noj9JlVgqy4bGYw C1Ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-disposition:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:references :message-id:subject:cc:from:date:dkim-signature; bh=puVy0eL4mazF3YfU0MnCZKxPvH+UcvA9zFvIXYJI8d8=; fh=1Wj/MAh+jnvZF/aMM1lYrKEgLZZd91YUwFaRXMvcDWA=; b=RDIAasniX1WV8R7HyRHcBt1Aw7NYQrrXmN1+4I2h4tqU+IBHfg+olZigmsmoEAGiqV ke0IzJ21GuAftnR7eH/BPjjiIk0jCrZihCrjBhntk6w5VTJidAMcs9rt5e+SaFrVzT4o Z5zucWNLMKiFIP3tR489cc0pVVifT4ETBpJ4fE6BWnb6lmXMcV0aTj7fpONttSegb6Am OFL4ng7Dj17gu/y4Ilg3tKApOLR7A/zuGuikGpGaYYJcINfrVO0BMRs+FyyH8CR5az2W K9rAEFBS5aF2USga5ZbZdQTlFQDt1Q+saBPYl1GV4x16uyWY4NgldwYfbkn45XQyTnSP CRUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nabijaczleweli.xyz header.s=202305 header.b=ediueyH5; spf=pass (google.com: domain of linux-kernel+bounces-7774-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7774-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nabijaczleweli.xyz Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id dx25-20020a170906a85900b00a233b337156si405998ejb.710.2023.12.20.19.09.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 19:09:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-7774-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@nabijaczleweli.xyz header.s=202305 header.b=ediueyH5; spf=pass (google.com: domain of linux-kernel+bounces-7774-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7774-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nabijaczleweli.xyz Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id DCBA81F23ABD for ; Thu, 21 Dec 2023 03:09:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 949F48C18; Thu, 21 Dec 2023 03:08:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nabijaczleweli.xyz header.i=@nabijaczleweli.xyz header.b="ediueyH5" X-Original-To: linux-kernel@vger.kernel.org Received: from tarta.nabijaczleweli.xyz (tarta.nabijaczleweli.xyz [139.28.40.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C7224404; Thu, 21 Dec 2023 03:08:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nabijaczleweli.xyz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nabijaczleweli.xyz DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nabijaczleweli.xyz; s=202305; t=1703128126; bh=ybIdi0gMPgMmtj3200db5CwiLm00xeI7NHXtjlFkAIo=; h=Date:From:Cc:Subject:References:In-Reply-To:From; b=ediueyH5QEM2+HRkyZx4r28DFAwiicXxhNwbwe+bf/itVrncIEDncK2IBL+WyxqsB WYQZaksBXFw8HKQyinNsue1UzUlAJDZmTfXW3mK7LckZfT+NZFPGKsAzVIubWuVTSa 7oD6Jr1u+OWvSjYK7r7jriaN6hUqfLfDexIcD8DNn8GVIRaAc9cOlpp9AkMzp8pq1+ gS/DzMM8Yl1z8jnWZLBE4McHEy+z4IqXKZayA/MANTXJvVGkWsdDD1wvykD9aKpfl4 ApOnk0BTRUEP3hXTrOlt6irzt2KC1KVqJdYwmzxYjErRDb8nhu0cnKgfT9yPNhmIdh /zoRAlkZpkvaA== Received: from tarta.nabijaczleweli.xyz (unknown [192.168.1.250]) by tarta.nabijaczleweli.xyz (Postfix) with ESMTPSA id F318313DAE; Thu, 21 Dec 2023 04:08:45 +0100 (CET) Date: Thu, 21 Dec 2023 04:08:45 +0100 From: Ahelenia =?utf-8?Q?Ziemia=C5=84ska?= Cc: Jens Axboe , Christian Brauner , Alexander Viro , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 01/11] splice: copy_splice_read: do the I/O with IOCB_NOWAIT Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="w6med5uoq7ajniqd" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20231103-116-3b855e-dirty --w6med5uoq7ajniqd Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Otherwise we risk sleeping with the pipe locked for indeterminate lengths of time =E2=80=92 given: cat > udp.c <<^D #define _GNU_SOURCE #include #include #include #include int main() { int s =3D socket(AF_INET, SOCK_DGRAM, 0); bind(s, &(struct sockaddr_in){ .sin_family =3D AF_INET, .sin_addr.s_addr =3D htonl(INADDR_ANY) }, sizeof(struct sockaddr_in)); for (;;) splice(s, 0, 1, 0, 128 * 1024 * 1024, 0); } ^D cc udp.c -o udp mkfifo fifo ./udp > fifo & read -r _ < fifo & sleep 0.1 echo zupa > fifo udp used to sleep in splice and the shell used to enter an uninterruptible sleep in open("fifo"); now the splice returns -EAGAIN and the whole program completes. Signed-off-by: Ahelenia Ziemia=C5=84ska --- fs/splice.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/splice.c b/fs/splice.c index d983d375ff11..9d29664f23ee 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -361,6 +361,7 @@ ssize_t copy_splice_read(struct file *in, loff_t *ppos, iov_iter_bvec(&to, ITER_DEST, bv, npages, len); init_sync_kiocb(&kiocb, in); kiocb.ki_pos =3D *ppos; + kiocb.ki_flags |=3D IOCB_NOWAIT; ret =3D call_read_iter(in, &kiocb, &to); =20 if (ret > 0) { --=20 2.39.2 --w6med5uoq7ajniqd Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmWDrD0ACgkQvP0LAY0m WPERzw//fQqEHfIMs2zy1REUwi6S7TEe95nkL+8f5Xe3G0lCCSw6p9aKhVPKYzCa QYZBq5RfYuMPmp8atJfmK+qj0Ku1XBUyha3qoVENEUPCYUnK2FAzz+hdXRfEkclu fsD3oK0LalXC7vEA14px41dTWzWpSbM24wfsrzAqJURR1h/GX43mMCQJG4AW0ZRx PZYWty6Qy0cfc9br29M3HNOrQQBDJyhvE5+Bgm0TJNNg73DLkwAfzj93ATnGx7zF dYzd3bg/C1JQ+ImoqrJf8ADypkHrWTxi0L17OZyck+N0XrolkEp3YDKxcPMkVmuC WijDI7lSca26Z1SNmHRHZxkbXTc2K1vQmZqFZh8bYfCVWdfpUkmSdz+wQ4p2BrgF 4d9rwFPcdW3TI0GIE/cGDOlr9Uz5aifCzc6P6YSTltOXb7L2jQqJ14q4uqWKwJ86 YhYsBi+ZOwkIdIaTJyQ9gfdcDz+o0thTPrVVxHVILxBa4rAImPUvtdWNDoZQcFAn Jy+tfpk2aLgSlgY8d9svq7IKAgGX+AKsKtzWQEkWUtV9Gb+cZcA4ZAZ5LNmwiofH PbELxyFjXWP2Dd3Rs6huMY7cM6hsIY5DZcx5ZzlbMD/CX8RYC9XEj/e9n72MZ226 Yz+LWwBY2cEDrY2gEwl12GM1PQAF2QZeAVcGkfhJdknDCb9gWGI= =kVSS -----END PGP SIGNATURE----- --w6med5uoq7ajniqd--