From patchwork Sun Nov 10 15:27:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Axboe X-Patchwork-Id: 13869945 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 E9333D12D44 for ; Sun, 10 Nov 2024 15:29:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 57FF46B00A6; Sun, 10 Nov 2024 10:29:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 52D7D6B00A8; Sun, 10 Nov 2024 10:29:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A7C66B00AA; Sun, 10 Nov 2024 10:29:18 -0500 (EST) 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 1BD9B6B00A6 for ; Sun, 10 Nov 2024 10:29:18 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id CE0BE1612F3 for ; Sun, 10 Nov 2024 15:29:17 +0000 (UTC) X-FDA: 82770567516.27.9FDE970 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf19.hostedemail.com (Postfix) with ESMTP id B531A1A0012 for ; Sun, 10 Nov 2024 15:28:26 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=i8lWOvDm; dmarc=none; spf=pass (imf19.hostedemail.com: domain of axboe@kernel.dk designates 209.85.216.42 as permitted sender) smtp.mailfrom=axboe@kernel.dk ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731252470; 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=ATQlrsiKbF4ovWTP3SQYfEdawQE8siSIL4Gn+HYptZ0=; b=f9hAgkKDXq0+Irb7w5rSUhUscZFxlMGQJ2plIs4/ym5LjgN/VVINHSS3Goabu/F+9wDPqs t2QgPt1vfquKw7wVoGLneO5lBx5Rk2O4FGG1U4aZPDxTv+xvt5itYT2mZSPoA0nBToEyk8 Jw7CgDLh51sYLVgl80g+4istCBPE5O8= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=i8lWOvDm; dmarc=none; spf=pass (imf19.hostedemail.com: domain of axboe@kernel.dk designates 209.85.216.42 as permitted sender) smtp.mailfrom=axboe@kernel.dk ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731252470; a=rsa-sha256; cv=none; b=1Op7TdW4lmrCjVzUHYuf9GwjVGSVpdPE8EiHbO22acCbs5yujCUG+zO1O2hbOEto5G76nf FPeaak/bzKiJ+zc2vPTQvtpOgbiyTC48t9r/MEeT7kL6QMDYhkG/r8tGtvMqMZAwPN6Z1e 5g5lZaYIa0dTgw6ChNsx9UXrceQ2q5I= Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-2e9b4a4182dso1473329a91.0 for ; Sun, 10 Nov 2024 07:29:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1731252554; x=1731857354; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ATQlrsiKbF4ovWTP3SQYfEdawQE8siSIL4Gn+HYptZ0=; b=i8lWOvDmeJDyWbmxFn0i/dOiwKU/jDD5ELlGL+eV5qgWd9k4AZgBBhcJe9UBXqhkLD 7Gbpn/FlkbpVKoJ5hunLVTwrlKYpb9HY3ufGDaeegHoZ8RIi//jeqh/xhKxVmp5CGOcF dX/MJ1xYMLFizwISbvy1dG6JoPDk32OrUUyM1ozcttN1KMezBs+kZfFNcMiQ0d3s3eVD eTO/+oMxAL7ug0I0StECStKLiKiG+EUDv8coV3G8WyrT6UCC92jjsSZhGDGiVza7AXyP DlFEMeIr9MjxrG0Z4K9TISYlsp55kke/hmqhW5WgEyxhVH5ZrasnaGrhTmzju/WLreuI 7Kbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731252554; x=1731857354; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ATQlrsiKbF4ovWTP3SQYfEdawQE8siSIL4Gn+HYptZ0=; b=mIVTBi/hV+M3khgWjZ7DIfJ38ypdLd4aMbuyGE5Vo1sgRA0rRfYGJ5BYj8THYQp99/ b8l84uOjWyDsykeRM5U7sTJ5YnEraXdTRPTyeIAoWF/Qxl4K4duerOX9fBaXE5GwVPfm qtP1nUzM+zUQa6jiN8LIKedZBjAgaSp/1svFLjOnAYSFuexpR7S3VQCki3CXdyfyDTo9 oDYzHK+d41iYuP8b2sSAlSSo4F/y8w0GJ/+C8MeMgFjGuw7XmsYAJoFBY6UbVC0OFIEF VslCMoDxexFupPynZ2OILde5ca8jEcWgc+b+b5+begdN+5XN24zfG05KehLKaWnG60HV hu5A== X-Gm-Message-State: AOJu0YzTgKRcGdmfQ8znV48i/YMDyebRQjvKsUqCbGlv7qJBCO+KCzwq U82XgmqWxhlpMdnsCJK4b1yfEI5qqXyxQxWxfeE+fWSfxmhK9gO5LOfrEDLBtpVpo03CNVbAXWB Sk0o= X-Google-Smtp-Source: AGHT+IHudq5kHes2nSMTtH3m+uxQGkBDk1+1Ad9rVBdouFER/SNEbqW3PARIVnuSTIfSKRPsHGRgYA== X-Received: by 2002:a17:90b:388d:b0:2e2:b94c:d6a2 with SMTP id 98e67ed59e1d1-2e9b1e13166mr14624611a91.0.1731252554158; Sun, 10 Nov 2024 07:29:14 -0800 (PST) Received: from localhost.localdomain ([198.8.77.157]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2e99a5f935dsm9940973a91.35.2024.11.10.07.29.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Nov 2024 07:29:13 -0800 (PST) From: Jens Axboe To: linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Cc: hannes@cmpxchg.org, clm@meta.com, linux-kernel@vger.kernel.org, willy@infradead.org, Jens Axboe Subject: [PATCH 01/15] mm/filemap: change filemap_create_folio() to take a struct kiocb Date: Sun, 10 Nov 2024 08:27:53 -0700 Message-ID: <20241110152906.1747545-2-axboe@kernel.dk> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241110152906.1747545-1-axboe@kernel.dk> References: <20241110152906.1747545-1-axboe@kernel.dk> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: B531A1A0012 X-Stat-Signature: jfah9tksetmie9w3r168xbadwop3cyn3 X-HE-Tag: 1731252506-267903 X-HE-Meta: U2FsdGVkX1+phvItYeTNhzHspxI+eTWffMQhOhpZ87DqjXkcYgwsI51/W7cyl9rJIzv9MDfcJrJ9SqGuy9ts70HLxI8mXJPsZWYLh9a6za/WsIxECx38ODjcsVqYtmLXTXbjIwrz1sscBF0c4NYyJFXB1nkCh9FhIOSKKPCfKj6GPWtMn3IxBS4qcdPHuV+51f5tJJEHNjwHnfMTdZpszn2n2mU8a5WgImfZqreKPcd0CqGzoL6OymYg6qPVn8OTvdFnZkCIuY3vISSE1djfNZxE6kmd4unmtfdjDaBFz/nv8elsm8dJXwR6guCvwgBWo9dhZQVGcO5asr5nMTyNxjDnmLOVgIKK+t7YIjBMfs3sIcZhIhRoa3rh9tSLKj6fTsUw6v2nxTCMcNv8SB+DbrrA36D+5auqD9m/cIe//xxuG/FXbrIENZYQNNy/vgfPmNFJTm865eQar2/z6eqJSo+/S0Msm2NO0f8JKDfOG/4BYiUG8qEaIJXzwyhPK4+ikARJylBxaunjfO0wNBNGEDN9GLITSSkHDy73Q/PCKLyD8mfk3eCfsSpADegmkFXtnHtenhrGT3X4GRstPb7pKjs/1vuArsWBiiggndk0SxeR2gnUtFQsiLwh/vxRhSWEoZbXJEevMheRi/L7aMXSR1mldy2hYlLkyWWCCOiVbtLYiV2mkEwoSpS4wqOzIR4yU0uSyhilYkPNOrQ/X2fnQuWryYFfIG974HR/PhfHktAfnQ516TJaJ7+qDp0oNH7mgYFpJpUfS6qzHATjxHCxEJG0dlNmNyluCIzBdy41DZoi0B+I8VDbtZhA+73wi0SkcI9WF71EAsYI3krjeedd4Kk3gPRubdBvDoX/PuqHbUuoKygg7GoLbBII1fUUURKNNfshuM/kzWTCW2o3mER/tQYlBP7UU/jdNhivtc/x+R36Mlbq0aspoER1j2IVpX7tjyACyn4GfuZr0YS2MmF eUyk0egV 3a/kqfvzDkS4/kcX3Et50n5rHb/kOWHJaEBg9DkSGlr0jDC8xz58KV9puFxnD6qwwU75AqsO8cVhkTxYNbJ77Ud04B95xFtSkpHgARCguo1+RTOcioVYmsRCIlA6Bn9WVy3eoLO5v+2wX7LrLAnzl7LIFWtk3koBWKpc0Fvfmdp+ssCRtth/qxtJOrTltLm/WKTWxirjuuB1Y77c/gzqagd06jFwH8bkGJ2vGyt21sjhWNkze4nTa+yamG5hcSpw6Vwr8aoTAY2tafWdIIijkpjj6wS1rSY3Gbx6lecQVeusqThssbUN3EGWYmyY0xEyn0d5TEOTni1YZdlJORxrLce/Kc5VauhXVvbet 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: Rather than pass in both the file and position directly from the kiocb, just take a struct kiocb instead. While doing so, move the ki_flags checking into filemap_create_folio() as well. In preparation for actually needing the kiocb in the function. No functional changes in this patch. Signed-off-by: Jens Axboe --- mm/filemap.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index 36d22968be9a..0b187938b999 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2460,15 +2460,17 @@ static int filemap_update_page(struct kiocb *iocb, return error; } -static int filemap_create_folio(struct file *file, - struct address_space *mapping, loff_t pos, - struct folio_batch *fbatch) +static int filemap_create_folio(struct kiocb *iocb, + struct address_space *mapping, struct folio_batch *fbatch) { struct folio *folio; int error; unsigned int min_order = mapping_min_folio_order(mapping); pgoff_t index; + if (iocb->ki_flags & (IOCB_NOWAIT | IOCB_WAITQ)) + return -EAGAIN; + folio = filemap_alloc_folio(mapping_gfp_mask(mapping), min_order); if (!folio) return -ENOMEM; @@ -2487,7 +2489,7 @@ static int filemap_create_folio(struct file *file, * well to keep locking rules simple. */ filemap_invalidate_lock_shared(mapping); - index = (pos >> (PAGE_SHIFT + min_order)) << min_order; + index = (iocb->ki_pos >> (PAGE_SHIFT + min_order)) << min_order; error = filemap_add_folio(mapping, folio, index, mapping_gfp_constraint(mapping, GFP_KERNEL)); if (error == -EEXIST) @@ -2495,7 +2497,8 @@ static int filemap_create_folio(struct file *file, if (error) goto error; - error = filemap_read_folio(file, mapping->a_ops->read_folio, folio); + error = filemap_read_folio(iocb->ki_filp, mapping->a_ops->read_folio, + folio); if (error) goto error; @@ -2551,9 +2554,7 @@ static int filemap_get_pages(struct kiocb *iocb, size_t count, filemap_get_read_batch(mapping, index, last_index - 1, fbatch); } if (!folio_batch_count(fbatch)) { - if (iocb->ki_flags & (IOCB_NOWAIT | IOCB_WAITQ)) - return -EAGAIN; - err = filemap_create_folio(filp, mapping, iocb->ki_pos, fbatch); + err = filemap_create_folio(iocb, mapping, fbatch); if (err == AOP_TRUNCATED_PAGE) goto retry; return err;