From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D02CCC369D5 for ; Wed, 23 Apr 2025 04:25:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE2566B0007; Wed, 23 Apr 2025 00:25:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D91EE6B0008; Wed, 23 Apr 2025 00:25:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BBC6D6B000A; Wed, 23 Apr 2025 00:25:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 989FC6B0007 for ; Wed, 23 Apr 2025 00:25:36 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 842A31C8B75 for ; Wed, 23 Apr 2025 04:25:38 +0000 (UTC) X-FDA: 83364019956.01.2DF0A9D Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf23.hostedemail.com (Postfix) with ESMTP id D10D9140003 for ; Wed, 23 Apr 2025 04:25:36 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=n1cHNFZw; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf23.hostedemail.com: domain of trondmy@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=trondmy@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745382337; a=rsa-sha256; cv=none; b=kucc2Ty1xSn1DSe26zCQ3IkPKGonfNgZ+LX8JlvbQCisSSs731PSJ3oZ+IdFrk8eQAlUsx A9c8uVb6fRns3McYbv0N0kjvYW3hLLh02aYVwEDSci3MC7WwloJfzYSpYHbc4NXZNycBGO Vwln3Xvz6PUkmNLg/rdSdE5HzRmNvAI= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=n1cHNFZw; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf23.hostedemail.com: domain of trondmy@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=trondmy@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745382336; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DwkIxHD43T/m+gCZ2khVDbfzOz1c5D1qDdRz1ltY34I=; b=A9dXS7PBx1RXnJCyr4xicQ2mQ5P6tCGVQfIeaz/O1oIhBY5uVUWqtms2KSoNqVxvPs5ZWw 2kdAXb8OnsRRxRBEl/58qHz/7A7Nkl9k2UpVIZNdKlg8k4SIEHhlTea/4PiFL6n+5ebkIe aRm0cIOmQCz4Nlhg+vRg96yLZffoca8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 214494A0D5 for ; Wed, 23 Apr 2025 04:25:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E295C4CEEA; Wed, 23 Apr 2025 04:25:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745382335; bh=69mAU3YkbHSYRyOavkWloFSSNjLBECWZP9yZSw7M4E0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n1cHNFZwco+fLA9PDbBY05EwDhJ0yMf249hWHlXGgSmgmWwbH5E6ecEKxgMVgNbey fD00Nlht6efbzKtDY/iaCyeSHEYVQGl1E8ydz2c1JKWzizTWltQh+my/xdyyO5Yi1x siEPMyhhBB/INzE5F3+PhHLajHpxuN6P7BrhGWvnlhhqrz+MKWIfMIObYEodcXE0ao aq4enXv5Lhh53rnJ5wMTmCS2mJaau+vWjlcHNozbNsywLJ5q3pnEovDYx2C65mNcJ+ QCdms9GWcDhyQpmVBL3wKQNb87ckVX0d6iND4mxinvTkonyTWemTG9KHfE5xnLY+OU ClZvoMbC3uarQ== From: trondmy@kernel.org To: linux-nfs@vger.kernel.org Cc: linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Subject: [RFC PATCH 2/3] filemap: Mark folios as dropbehind in generic_perform_write() Date: Wed, 23 Apr 2025 00:25:31 -0400 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: D10D9140003 X-Stat-Signature: wp95mwehdz614az4ypii9pt3dbezpqgq X-Rspam-User: X-HE-Tag: 1745382336-497523 X-HE-Meta: U2FsdGVkX1/5Kkyvd9SvatK/QKCpZDNGCEpgiX/qpX316HO6yY9eECixNgngLMjNbT7ANhtbVEt0QXJWVw4bEJVST+0pbGX0tRffgof+FSCpVB9Sp1wi8/VaYr0aX92oiP4w0QnFqqsn2gDIymy3ldTcV4d8u/umPwY0YxLXrtFSiexyz6OohpGkx3ZYd6oMVVuD7srNiZMbR8r7963BkW44es00kylUbO+zs8/49fOkA1F6koS4LpJ239QhmFS1f1OpbkNRyZoQld1SU3fTKJwgfPpXYe+iTjOnQj6qhbA0YXswB62/Tz8fZ3c4OlBB8qjOFlKW0pesDsHY9Yo7jEVzKd5k8S1r/JcKfULKCol6SZV8wxE64SD9ZkkYsPAV9UYbcz/Smdir3eFLy4iR5RNahy3tzPze9bUI0SScY21sY8V7Fsjcl63u3h+is/HF4aW7EtG4JVCPoZP3D1kaM4xPPCswj+EFCjcvHAOSEVxURSoUUZWDwCUOxE3ccWvRRT6eVsMf8Vw0aGXMuwMt1WVZ+ffhFW/NHh/J49AgGJe1sxR940A7vU7tVMC82vTjj5QI266+9nn3yEmDCqBHNUIUpma1V8SOHbNvcdpFsXqGJysLwiMTmGVr3dIih1XiceBS12LFw9+A55h6bCvLqSsfmAWFXIq8uD2kdUzKWWe3QsDw3v99FiOxucti+NeKj8U4Zs2UWjnegP0LA2m+Bp/n4y21DBJsvuVRg6Syg3b8/ZUKDEraqyA73Da+pZ0l2aTJUHvJ5NM26GcqHHGRtNhu4XzvzZ7yizyEtFdVcQ1ZzQXjwOeh4oWpygjZBLLwBMQD402nPctYxuW7j8DkRFH24DQjYwadG3QzyGcjqQkg616q+wgBVtakrxhOsmOHwXzomnGqEOu5SjPs/xsOc8znVG6Nc0LD/AT0qf8MCGxLU9UKNBNErbth5C/j5OGb0QpSWE1l8dOuvtVmi+h /6M08zCg RSNqYu3v3LLQXBse1BQe/grx5qO4d3mERhsiH1AfC5RqDHxRUPAhQDWB5Acr0zGdyk6CwsdA56lhF+wFiA1C5d+DLo0zpPyS78bpFQuL+i6IQstbkxDd1fnMZ9lXav09lAmhreVrXlgI+ztpUrIsoVX88LgYm+cNh03GVHa4MGWZyyuTGI4EvhmXqBJgm0C8XS+A2N/JSsu2zKJUZO2xnrsFnbMcGoMof+3LVRk1JbM6Mt1R90NJRbPBaAkVH53NUVDF8cin5zwpj8Po4nYezfLdVycqBR25XCJRqYpgCvR/VO0YyD+58cogXQsV7JAfMd1t5yN7sUlHyhrAKeC6MDdU4mA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Trond Myklebust The iocb flags are not passed down to the write_begin() callback that is allocating the folio, so we need to set the dropbehind folio flag from inside the generic_perform_write() function itself. Signed-off-by: Trond Myklebust --- mm/filemap.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/filemap.c b/mm/filemap.c index 12f694880bb8..4c383f29e828 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -4136,6 +4136,11 @@ ssize_t generic_perform_write(struct kiocb *iocb, struct iov_iter *i) copied = copy_folio_from_iter_atomic(folio, offset, bytes, i); flush_dcache_folio(folio); + if (iocb->ki_flags & IOCB_DONTCACHE) + folio_set_dropbehind(folio); + else if (folio_test_dropbehind(folio)) + folio_clear_dropbehind(folio); + status = a_ops->write_end(file, mapping, pos, bytes, copied, folio, fsdata); if (unlikely(status != copied)) { -- 2.49.0