From patchwork Fri Apr 14 11:08:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pankaj Raghav X-Patchwork-Id: 83356 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp302596vqo; Fri, 14 Apr 2023 04:21:40 -0700 (PDT) X-Google-Smtp-Source: AKy350alI0A9g981mqHZR56sbh0Ic0Rk/jur0T07yB/4Bd8EeoDShkwZ/2VLbbxlf32o71u6tpLt X-Received: by 2002:a17:90a:fa4f:b0:247:4c7:4d53 with SMTP id dt15-20020a17090afa4f00b0024704c74d53mr4895640pjb.36.1681471300625; Fri, 14 Apr 2023 04:21:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681471300; cv=none; d=google.com; s=arc-20160816; b=o5frwr0pg7MqMat2PN5KEUcx7ngdzd6YDqSSVWrHyxeOqNNxi60M+BhoOAiq8YCj1O POqmQak1Gc13GrwPkHVXQJsOFk8axxHOLKE5mhFuD64A1p+UZDhg9+lfJbMSeR16HBKC PZvEiNnc9p2i38bWT38DDJ4nY5A9zwgCxEYenD2L7auS7UOAbrk9Wf3csyXCW3soJySF cdeFDaRNlRDMwRSFn8IeySdKuTXtKRCJj+k996WrtT3CFbnvkFCLB/RpDytCyPUwbg+i uSuPtLTxP2gQo2cPJOF0K2qTmPa6i58NQ1SvIQ1GEc2ai5uXO6OqPb2MDNLDrfhY1ZyI GE0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:cms-type:content-transfer-encoding :mime-version:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=bj8baqlJ3xbqI4cUC/UA6zmhZCxhKwgx39HkAQuD4fg=; b=JDdMznnS9+NUrcQruJ6yCGbVRrLtzdvzWKUDyr6uV1k8Dneeq/fs/j9gMZQ7qSTWmX mZ1klLxh2zKgWMJUngyfSF/2tOYQM/5RW/JQlz6ETOe10+krvC5nyf7S7VBvgfIqDSuK +ICbxIbd4BnWaWEkOmzj1ZFKTEsRTMjGkjUk9ClAiI5tIugWZBLZfcJ1bt60o7Amg5lF wA6pvkO7WCY+1X+nx21OcxEKtcTx9N8DNSPqEDjWkHyFTve5a58FUbp34BGWNwr47Xbu 0RmLA3E6lAkfQAxvvXJYWdLKSeV8I6NDI9+CaKvem9LDI+kuyxcjkwO/prHZX67eB8v4 VqaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=gJISNXnT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h24-20020a17090a9c1800b0024709ef2225si4349970pjp.84.2023.04.14.04.21.28; Fri, 14 Apr 2023 04:21:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=gJISNXnT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230329AbjDNLIf (ORCPT + 99 others); Fri, 14 Apr 2023 07:08:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230107AbjDNLIb (ORCPT ); Fri, 14 Apr 2023 07:08:31 -0400 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6094F10FA for ; Fri, 14 Apr 2023 04:08:29 -0700 (PDT) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20230414110827euoutp017a1207ec9052a1f34bea96ae5f0125f0~VyIR2WM1q1043810438euoutp01j for ; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20230414110827euoutp017a1207ec9052a1f34bea96ae5f0125f0~VyIR2WM1q1043810438euoutp01j DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1681470507; bh=bj8baqlJ3xbqI4cUC/UA6zmhZCxhKwgx39HkAQuD4fg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gJISNXnTsYVWM4Je5xvVmkSAvxU8nLYiklXi+ekE7Us/8AYm36M37epx6EY7vOwDb 6RFXFTusHUK997hKX9krM8ZSxmrB4OxqZmY3wf7jKkbMqeC1s9HXo2MpSoFLG9grsp qwq5sYtg1MxosYYUzrI0L0S3SZ0c0OpdJjs7RvE4= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20230414110826eucas1p2ce40f92dab528798642e4e76e1afb140~VyIQ_A9TV3129031290eucas1p26; Fri, 14 Apr 2023 11:08:26 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 9B.25.09966.A2439346; Fri, 14 Apr 2023 12:08:26 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20230414110825eucas1p2faad8162ee3aac7ed17f735dcbfc2334~VyIQtuKk_0295002950eucas1p2C; Fri, 14 Apr 2023 11:08:25 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20230414110825eusmtrp205bbbc45cef585744a33e1411797f63e~VyIQtHsbg0970009700eusmtrp2R; Fri, 14 Apr 2023 11:08:25 +0000 (GMT) X-AuditID: cbfec7f4-d4fff700000026ee-e5-6439342af1b7 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 3D.39.34412.92439346; Fri, 14 Apr 2023 12:08:25 +0100 (BST) Received: from localhost (unknown [106.210.248.243]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20230414110825eusmtip2dfbef8e4c6f27559c80bf91e2d130d7b~VyIQhBV2z1802118021eusmtip2c; Fri, 14 Apr 2023 11:08:25 +0000 (GMT) From: Pankaj Raghav To: brauner@kernel.org, willy@infradead.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, mcgrof@kernel.org, gost.dev@samsung.com, hare@suse.de, Pankaj Raghav Subject: [RFC 1/4] fs/buffer: add set_bh_folio helper Date: Fri, 14 Apr 2023 13:08:18 +0200 Message-Id: <20230414110821.21548-2-p.raghav@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230414110821.21548-1-p.raghav@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKKsWRmVeSWpSXmKPExsWy7djP87paJpYpBg8fc1jMWb+GzeL14U+M FjcP7GSy2LNoEpDYe5LF4vKuOWwWNyY8ZbT4vLSF3eL83+OsFr9/zGFz4PLYvELLY9OqTjaP EzN+s3j0bVnF6LH5dLXH501yHpuevGUKYI/isklJzcksSy3St0vgyljx6TRLwR+eik8XHrI0 MN7i6mLk5JAQMJF4NuUNexcjF4eQwApGidvTbzCBJIQEvjBKrLlvApH4zChxacdDZpiOI5v+ M0EkljNKXP/RzwzR8ZJRYtoN7y5GDg42AS2Jxk52EFNEIFHi5nsFkHJmgQWMErduv2cHKRcW MJXYs/gLWCuLgKrEgq5GNhCbV8BSYtmNdjaIXfIS+w+eBavhFLCSeLPsAlSNoMTJmU9YQGxm oJrmrbOZQRZICNzhkGi7dYgVotlFYsW0qVC2sMSr41vYIWwZif875zNB2NUST2/8hmpuYZTo 37meDeRqCQFrib4zOSAms4CmxPpd+hDljhIv+/qZICr4JG68FYQ4gU9i0rbpzBBhXomONiGI aiWJnT+fQC2VkLjcNIcFwvaQWDfjA9sERsVZSJ6ZheSZWQh7FzAyr2IUTy0tzk1PLTbKSy3X K07MLS7NS9dLzs/dxAhMSaf/Hf+yg3H5q496hxiZOBgPMUpwMCuJ8P5wMU0R4k1JrKxKLcqP LyrNSS0+xCjNwaIkzqttezJZSCA9sSQ1OzW1ILUIJsvEwSnVwCTy5lehfec1wR8vljTelPTf 3XP+sIHSs5O5OVqlLxus3pl6tHz/uVHE8cWB8KTkDK4Fh164K7+UWP/pzoffkhMYLhozsYvJ mfIsX/otoMSYX1BcMZx9vr7y9VXsQRuFKv9mS2jPTJQNDZndVy318aG0sanEC4ewBYWlzIac V4O6tafd0HUOLWs7+nWVpIftnQNp/5fcsOSba/T77Y+sb8y3/p62X/VIdgoHG5fxleb7L8V0 arneW3RrqjoZzLytM9mudJp/yar40kWzxScwcd29J/W5pePPiwl8vSbbgjlnCjiHnrpguuZ/ rfHaFmWNuQW/2uW7m/fNeh66vPP+gdzNT7bxq8ds9avu1haaqMRSnJFoqMVcVJwIAOniHS64 AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRmVeSWpSXmKPExsVy+t/xe7qaJpYpBgf/G1vMWb+GzeL14U+M FjcP7GSy2LNoEpDYe5LF4vKuOWwWNyY8ZbT4vLSF3eL83+OsFr9/zGFz4PLYvELLY9OqTjaP EzN+s3j0bVnF6LH5dLXH501yHpuevGUKYI/SsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQz NDaPtTIyVdK3s0lJzcksSy3St0vQy1jx6TRLwR+eik8XHrI0MN7i6mLk5JAQMJE4suk/Uxcj F4eQwFJGibm3VrNDJCQkbi9sYoSwhSX+XOtigyh6zijxecEXoA4ODjYBLYnGTrB6EYFUidMn PoLVMAssY5RYM/cFG0hCWMBUYs/iL8wgNouAqsSCrkawOK+ApcSyG+1sEAvkJfYfPAtWwylg JfFm2QWwuBBQTfuWJSwQ9YISJ2c+AbOZgeqbt85mnsAoMAtJahaS1AJGplWMIqmlxbnpucVG esWJucWleel6yfm5mxiBMbTt2M8tOxhXvvqod4iRiYPxEKMEB7OSCO8PF9MUId6UxMqq1KL8 +KLSnNTiQ4ymQHdPZJYSTc4HRnFeSbyhmYGpoYmZpYGppZmxkjivZ0FHopBAemJJanZqakFq EUwfEwenVANT8H7fy5KqD8W3vOvdZ6dXdVL9eGlSROP36f///Lx2c5N+7Mry+376HKETptUu uf7tStGbcwnX1C/3RDTPOHNSYvO+U1XHdzzhmLH61x/1istvJ2wwPZbffHi6j3NynMKNlIYg X/434lPuXbyo6P7+/tNr95KuK79+c/FP4N64Qts1d+YcrdWpqQoUSXpR9/um4b0fM2O2fFl9 frc523o2F5EjDQl172t0Sm94+l9Puf/pE7NigqZlYftHXe15npvi8iz2Mcje06lYkXKQZd0J nRSX/ft7ryj+cZrwpOdUb6b6svSCW74n5YInHF1xutJpTdvi93qdfzYGRsosKuc7WPPRb++t Y3tmv+raaHJ+WpkSS3FGoqEWc1FxIgC7JStKKgMAAA== X-CMS-MailID: 20230414110825eucas1p2faad8162ee3aac7ed17f735dcbfc2334 X-Msg-Generator: CA X-RootMTR: 20230414110825eucas1p2faad8162ee3aac7ed17f735dcbfc2334 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20230414110825eucas1p2faad8162ee3aac7ed17f735dcbfc2334 References: <20230414110821.21548-1-p.raghav@samsung.com> X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763150451036107879?= X-GMAIL-MSGID: =?utf-8?q?1763150451036107879?= The folio version of set_bh_page(). This is required to convert create_page_buffers() to create_folio_buffers() later in the series. Signed-off-by: Pankaj Raghav --- fs/buffer.c | 15 +++++++++++++++ include/linux/buffer_head.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/fs/buffer.c b/fs/buffer.c index b3eb905f87d6..44380ff3a31f 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -1484,6 +1484,21 @@ void set_bh_page(struct buffer_head *bh, } EXPORT_SYMBOL(set_bh_page); +void set_bh_folio(struct buffer_head *bh, struct folio *folio, + unsigned long offset) +{ + bh->b_folio = folio; + BUG_ON(offset >= folio_size(folio)); + if (folio_test_highmem(folio)) + /* + * This catches illegal uses and preserves the offset: + */ + bh->b_data = (char *)(0 + offset); + else + bh->b_data = folio_address(folio) + offset; +} +EXPORT_SYMBOL(set_bh_folio); + /* * Called when truncating a buffer on a page completely. */ diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 8f14dca5fed7..d5a2ef9b4cdf 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -196,6 +196,8 @@ void mark_buffer_write_io_error(struct buffer_head *bh); void touch_buffer(struct buffer_head *bh); void set_bh_page(struct buffer_head *bh, struct page *page, unsigned long offset); +void set_bh_folio(struct buffer_head *bh, struct folio *folio, + unsigned long offset); bool try_to_free_buffers(struct folio *); struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size, bool retry); From patchwork Fri Apr 14 11:08:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pankaj Raghav X-Patchwork-Id: 83363 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp306095vqo; Fri, 14 Apr 2023 04:28:07 -0700 (PDT) X-Google-Smtp-Source: AKy350a7dcvQtoJvYR155Pl4T+nOXqWnIj+ysaXGYiMahttFLX2dSiQNoF4LdUTeESRslbiOD9pn X-Received: by 2002:a17:90b:f84:b0:246:fc58:d77b with SMTP id ft4-20020a17090b0f8400b00246fc58d77bmr5121154pjb.44.1681471687196; Fri, 14 Apr 2023 04:28:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681471687; cv=none; d=google.com; s=arc-20160816; b=XPm7VSIoM2Eg2l/zdsKTsRTB5RL0uuSG7/QD3GVrWEM/roWz5LweT4nrPgq2Np3t46 Yzuts6jGsWkyfoOmfuHfGB6WwxJjhZeiiJooisGtsUBru5T2rlF+cbfYNw3lyYpc3uUt n1aHpa0UmoRrj/ELw93+acmtx8aG0jcb3wZtIcwMJnS5HLba79x0B+iexTnzuyi3bvcg Tlawbem8BsmvlK0SisqhiN2lkqbADEHE9HMf0N8TY53qa0pRIqcFAMbb5FjaAMlT7Ymh 6q92IA5Nh1qyFefUF5lBbP1qtlJTv5jR/CFYv+ySJaMrANOFLi5+Yc7Amvt8jc/VvDlv Lvfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:cms-type:content-transfer-encoding :mime-version:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=lOgNCG8+j9glN6g01kkt3qiHQuDvi5vkCnsii6V5uAc=; b=HX3I90jCqZdNWx5tFW0Y19Xytan3ZJmTv09GLz83X7+dZdHNvW8u9AKRLxqiM6SR51 HWN4jgB1Zy/Fx4ValPioilPFZzVCf9GV8psDsl1NmECffjwEgul3TIH8D4BELWL3y5f8 hcExcC2dbmuyyYkbqV2HuJ97eMGaF5lOqNcgmeSFG7Y5JVuPe3kqeT7hf46Z5wkHzy5t WMwaeMrqm+DhQ1wjGwYUszrL/8octxj9JPlSw642sURWsLZuejylAedtdfqSC9ZlSEZF /cx7cFXzZqxg1nXAArxV1UJVmcFNWABzmEiPLSbpAxVAYuBpCCzJwphD22Tgtnc9RUSl 8lJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b="iWE/tHfM"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c3-20020a17090a8d0300b002402275fc56si4303726pjo.118.2023.04.14.04.27.52; Fri, 14 Apr 2023 04:28:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b="iWE/tHfM"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231132AbjDNLIi (ORCPT + 99 others); Fri, 14 Apr 2023 07:08:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230321AbjDNLIb (ORCPT ); Fri, 14 Apr 2023 07:08:31 -0400 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60C7F1717 for ; Fri, 14 Apr 2023 04:08:29 -0700 (PDT) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20230414110827euoutp01e003a67f45a557b560b5457253025ed5~VyISSYGrd1324913249euoutp015 for ; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20230414110827euoutp01e003a67f45a557b560b5457253025ed5~VyISSYGrd1324913249euoutp015 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1681470507; bh=lOgNCG8+j9glN6g01kkt3qiHQuDvi5vkCnsii6V5uAc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iWE/tHfMioyKOEecs7lOsNIQD2wiGi4J7iD8mokUHLffG+SDIfB67l00xjQU6B7l8 SDbJgpoQjal9+YvVKmOUsjsoV0e9GkVPr184l8ekaZjt7e13/2G9v/YrDEpYeXsTjY tm5O2pRzURtX+2At0XfxyEaJTluNzrFPEvCtFcCs= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20230414110826eucas1p2801083c055bbebf8b958862c5a463047~VyIRh-Xsc3134131341eucas1p21; Fri, 14 Apr 2023 11:08:26 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 1D.25.09966.A2439346; Fri, 14 Apr 2023 12:08:26 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20230414110826eucas1p2c5afcbd64c536a803751b41d03eb9e99~VyIRPTb5z0087400874eucas1p2A; Fri, 14 Apr 2023 11:08:26 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20230414110826eusmtrp201580c3c89bd58675a349e7c6c7667b0~VyIROq8NL0913109131eusmtrp2V; Fri, 14 Apr 2023 11:08:26 +0000 (GMT) X-AuditID: cbfec7f4-d39ff700000026ee-e8-6439342a5fc5 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id FD.39.34412.A2439346; Fri, 14 Apr 2023 12:08:26 +0100 (BST) Received: from localhost (unknown [106.210.248.243]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20230414110826eusmtip2f71aa69c101c25276f134b498a5df907~VyIRCV4Yn2606126061eusmtip2f; Fri, 14 Apr 2023 11:08:26 +0000 (GMT) From: Pankaj Raghav To: brauner@kernel.org, willy@infradead.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, mcgrof@kernel.org, gost.dev@samsung.com, hare@suse.de, Pankaj Raghav Subject: [RFC 2/4] buffer: add alloc_folio_buffers() helper Date: Fri, 14 Apr 2023 13:08:19 +0200 Message-Id: <20230414110821.21548-3-p.raghav@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230414110821.21548-1-p.raghav@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHe3fm2XE4Oc7KB7O0dTOb617HZlphdKI++KWIAm3p8VJz2ubK MkIrlkuadsNLC+1m5qqRM2tm1IyctzAScjNQyllpmXjBVlLL0zHqy8vveZ7//7nAS2Diq16B RKoqk1GrFEoJLuTXNn5vDw9bFZG4zHMinDKa7+DU5+cjiHI+s/Ko+mvnJ58nzXyqo86IU47C PkSN3jwloNp/2r2oCbcR3yCkLZVhdHWVHqebiif4tKGmCtGW1mx6tHoOXe0a5MUKdgsjExll 6iFGvTRqrzDF9jguI98va3jYg+egDtEZ5E0AuQp+OnWCM0hIiMlKBOc8N3hcMIbA8L4XccEo gp47bZMV4o/FrMNZt5i8hSC/7CCn6UdQ9sSOsxqcDINcvYDF6aQCnEMhrAQjyxF0vR0SsF5/ Ug4FZ99hrIZPLoB7RTPZtIiMgEsOC8YtFwxPbS//sDe5Dr5UvMI5jR80l7j4LGOTmpMPLmNs fyAdBHzS26fWjIFc51qujz8M2GsEHAeBx1rG4zgb+hwTU95TCAqsZpzzysHQpmQRIxeDuW4p l90ITXd9OPQFx6Aft4AvnK8twri0CPJ0Yq63BKzfXVMzATpOGPkc0/Cuv5hXiOaW/ndK6X+n lP4bW46wKhTAaDVpyYxmhYo5LNMo0jRaVbIsIT2tGk3+otZf9rFH6NbAsKwB8QjUgIDAJNNF 7pjViWJRouLIUUadHq/WKhlNA5pF8CUBoiXrmxPEZLIikznAMBmM+m+VR3gH5vC2aRttzs6d oc7YlTJp34buo9evXxgx1gy0fu2Wz1980rO7IijeYDt+3/Si7/TqlixMF1m5fWfJh0UTys+h x0zFTne0uz1jmly9OQl9eFE/3lnulRC1LMbHd98W/ZCtPiM7pKjQbFaVmnJedlrrev1zXeMf b+8ojBxcfm1XQEKgYEwKc0+3RPlGydJveDK7b2syFzZIIoINMxrF1jV3u0YtsXrp3iYzQeRZ HAsC3uS3B/UG/6Dd65KG52zdNH7xERUnf9MvbYkuAmlFj3+X+0pc6EqtK+Ss38M9i1Iff7PF Pzw4+9nhp9S55IrQmHlV+1X31qMa3ad9pte1M/LrTd15Er4mRbE8DFNrFL8B/RPjZLQDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRmVeSWpSXmKPExsVy+t/xe7paJpYpBtveSFjMWb+GzeL14U+M FjcP7GSy2LNoEpDYe5LF4vKuOWwWNyY8ZbT4vLSF3eL83+OsFr9/zGFz4PLYvELLY9OqTjaP EzN+s3j0bVnF6LH5dLXH501yHpuevGUKYI/SsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQz NDaPtTIyVdK3s0lJzcksSy3St0vQyzi4O66gW7Di48f/bA2Ml3m7GDk4JARMJNa3sXUxcnEI CSxllNh4YjZrFyMnUFxC4vbCJkYIW1jiz7UuqKLnjBIn52xjB2lmE9CSaOxkB6kREUiVOH3i I1gNs8AyRok1c1+wgSSEBawl+nsfMoPUswioSqybLgYS5hWwlJh6YzMzxHx5if0Hz4LZnAJW Em+WXQBrFQKqad+yhAWiXlDi5MwnYDYzUH3z1tnMExgFZiFJzUKSWsDItIpRJLW0ODc9t9hI rzgxt7g0L10vOT93EyMwerYd+7llB+PKVx/1DjEycTAeYpTgYFYS4f3hYpoixJuSWFmVWpQf X1Sak1p8iNEU6OyJzFKiyfnA+M0riTc0MzA1NDGzNDC1NDNWEuf1LOhIFBJITyxJzU5NLUgt gulj4uCUamCa+16y507ZkiPKpbof33/4c6v73aW7PjEptosKFrDFRIgEnt56I9QpaX1l3f5d 1TvNml4+PZddfO+gGt/K7zOic8xEk07sjeypyP70/qDA758tBjlG00PqJnz+z1uvvrL/jp7l bFe9DfLhP6sfiNcKWNiHrby8hPX8lN/Z/h/dw7RF9y1fc0tn4UqvSQ+mBDU/vF3d+lTSQ9Wh T8ghRHu7xAqDrY/vvQv9lauusOJsj/RE9d8KdpZph7UWvpNYNH/z2yLd+A8nvt/1bDcUWXE3 T3PmJPXC/hsRokz8uj9nrb0deXbbPd8Oh5uv1oWph79dlbO/5NodwbSHLDle7438pinnCC6v nNIeYGH0Z/4XJZbijERDLeai4kQAKyWFnycDAAA= X-CMS-MailID: 20230414110826eucas1p2c5afcbd64c536a803751b41d03eb9e99 X-Msg-Generator: CA X-RootMTR: 20230414110826eucas1p2c5afcbd64c536a803751b41d03eb9e99 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20230414110826eucas1p2c5afcbd64c536a803751b41d03eb9e99 References: <20230414110821.21548-1-p.raghav@samsung.com> X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763150855858590208?= X-GMAIL-MSGID: =?utf-8?q?1763150855858590208?= Folio version of alloc_page_buffers() helper. This is required to convert create_page_buffers() to create_folio_buffers() later in the series. It removes one call to compound_head() compared to alloc_page_buffers(). Signed-off-by: Pankaj Raghav --- fs/buffer.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/fs/buffer.c b/fs/buffer.c index 44380ff3a31f..0f9c2127543d 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -900,6 +900,65 @@ struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size, } EXPORT_SYMBOL_GPL(alloc_page_buffers); +/* + * Create the appropriate buffers when given a folio for data area and + * the size of each buffer.. Use the bh->b_this_page linked list to + * follow the buffers created. Return NULL if unable to create more + * buffers. + * + * The retry flag is used to differentiate async IO (paging, swapping) + * which may not fail from ordinary buffer allocations. + */ +struct buffer_head *alloc_folio_buffers(struct folio *folio, unsigned long size, + bool retry) +{ + struct buffer_head *bh, *head; + gfp_t gfp = GFP_NOFS | __GFP_ACCOUNT; + long offset; + struct mem_cgroup *memcg, *old_memcg; + + if (retry) + gfp |= __GFP_NOFAIL; + + /* The folio lock pins the memcg */ + memcg = folio_memcg(folio); + old_memcg = set_active_memcg(memcg); + + head = NULL; + offset = folio_size(folio); + while ((offset -= size) >= 0) { + bh = alloc_buffer_head(gfp); + if (!bh) + goto no_grow; + + bh->b_this_page = head; + bh->b_blocknr = -1; + head = bh; + + bh->b_size = size; + + /* Link the buffer to its folio */ + set_bh_folio(bh, folio, offset); + } +out: + set_active_memcg(old_memcg); + return head; +/* + * In case anything failed, we just free everything we got. + */ +no_grow: + if (head) { + do { + bh = head; + head = head->b_this_page; + free_buffer_head(bh); + } while (head); + } + + goto out; +} +EXPORT_SYMBOL_GPL(alloc_folio_buffers); + static inline void link_dev_buffers(struct page *page, struct buffer_head *head) { From patchwork Fri Apr 14 11:08:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pankaj Raghav X-Patchwork-Id: 83362 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305991vqo; Fri, 14 Apr 2023 04:27:54 -0700 (PDT) X-Google-Smtp-Source: AKy350ZeSSThfAqGzGzY+IAS9NLHf5ENlALHAP+yl7UpoR2mnhO/wjB/z6BQhhrp/JRYEOAR9Jnc X-Received: by 2002:a05:6a20:4d85:b0:cc:d96c:1090 with SMTP id gj5-20020a056a204d8500b000ccd96c1090mr5215230pzb.2.1681471674290; Fri, 14 Apr 2023 04:27:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681471674; cv=none; d=google.com; s=arc-20160816; b=OsIIDaLQoX3d2RP7MRv9z3JXTwaf3sKhf7ZCBwnB+lZGe6gvsh4/dyY2zJTXIZQBVp B28Ww9Kyb+MxduqaKTan5rwrJ3xxU2z5s9NHKOI2tt0SMKN1Yw086Vl3ejI1l7U2J65V LzyOpTjGcNDGX6Ykx4ahgUgH+PT6EzrxlhuuEgYSfz68vh3obPmiEzIHVtJkCBXG+8dD IX9UyT9NFWSN0yd8J4Q0NpHXEA54p6aTjq+5k9N15lxnSDt0WwgtjxiKIV1551L/Is+X +5Y5FxPxZLwKrKiO4rnBpwTHJ+NimxStBFV/y6NfdvAKV8ILXlndexip1Rtr7nbSf45r xmwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:cms-type:content-transfer-encoding :mime-version:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=RSOGq3FrSoWTKQkTpr/5r4j+YAAPIjwLJMcrhoIlH+4=; b=cKWu/AX3P3/6IVvoXn1xTU+Ea1kV+Vvu3Gc/LnvnNs/QxVjtRa/0iU3+ENrMneM5eM /TeExbhrJL1P2ZYo5Oth8ky1B2IFzptQ0fQbrgdz7ZJC5hCXE1oYEdIaqJTCyjK4ANbX AMo0ByEIT1xUYDUOHCTG2jzY/srOQ9Cxzampp1DE8m5XLezfMPy3NkOR6DebK8ipLdWm vSHLSyOIPXmU8tSIieXw/tRv8nNCI/1qszhp6XWSp4xi1NguSV0xUXG9FGJU0SORuBy4 PCTBLCXyP9btClurZQXhWmrykshYrhz+uXVI93D6yswBGTFZzFHmC4UuME0LznzLGtg4 ZA/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b="IAd/6DAl"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bs193-20020a6328ca000000b0051a650b8f62si4241136pgb.836.2023.04.14.04.27.40; Fri, 14 Apr 2023 04:27:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b="IAd/6DAl"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231150AbjDNLIl (ORCPT + 99 others); Fri, 14 Apr 2023 07:08:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44546 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230368AbjDNLIc (ORCPT ); Fri, 14 Apr 2023 07:08:32 -0400 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E1AA1BEA for ; Fri, 14 Apr 2023 04:08:29 -0700 (PDT) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20230414110828euoutp01963132ba3500087a17ade7da0ed6b08b~VyITErBUj1325113251euoutp01r for ; Fri, 14 Apr 2023 11:08:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20230414110828euoutp01963132ba3500087a17ade7da0ed6b08b~VyITErBUj1325113251euoutp01r DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1681470508; bh=RSOGq3FrSoWTKQkTpr/5r4j+YAAPIjwLJMcrhoIlH+4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IAd/6DAlYvu1XMnSEnNRo3E1VZqJdS/vehvklGbj1gkudXKyHHQgllpmPwUYlwy9f 8QKY2GBaMdc3Bp4CijVny51VDtGZD8eMm0jFmIDiWSQoZJkPd3HuckBU868rTPnw/n y85BWFmn1YmUBdo8/3VDatm6ptTtHaC4n6WXRO2E= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20230414110827eucas1p207835504e487b376ebad539ba5144250~VyISKgiwV0186801868eucas1p2t; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 32.9A.09503.B2439346; Fri, 14 Apr 2023 12:08:27 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20230414110827eucas1p1b872c350b7e81f01e65ba0985082ba20~VyIR1VkI60084500845eucas1p1O; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20230414110827eusmtrp21c4f119e4cab5295de4520b22e69c302~VyIR0o5fz0913109131eusmtrp2W; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) X-AuditID: cbfec7f2-e8fff7000000251f-9c-6439342b055f Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id CE.39.34412.A2439346; Fri, 14 Apr 2023 12:08:26 +0100 (BST) Received: from localhost (unknown [106.210.248.243]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20230414110826eusmtip1e7db1c25fda031f3dd0ba138dcb74441~VyIRme_cz1969519695eusmtip1h; Fri, 14 Apr 2023 11:08:26 +0000 (GMT) From: Pankaj Raghav To: brauner@kernel.org, willy@infradead.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, mcgrof@kernel.org, gost.dev@samsung.com, hare@suse.de, Pankaj Raghav Subject: [RFC 3/4] fs/buffer: add folio_create_empty_buffers helper Date: Fri, 14 Apr 2023 13:08:20 +0200 Message-Id: <20230414110821.21548-4-p.raghav@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230414110821.21548-1-p.raghav@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCKsWRmVeSWpSXmKPExsWy7djPc7raJpYpBt+/iFrMWb+GzeL14U+M FjcP7GSy2LNoEpDYe5LF4vKuOWwWNyY8ZbT4vLSF3eL83+OsFr9/zGFz4PLYvELLY9OqTjaP EzN+s3j0bVnF6LH5dLXH501yHpuevGUKYI/isklJzcksSy3St0vgypj7XqFgu3DFhg9/mRoY pwp0MXJwSAiYSFzZUdfFyMUhJLCCUeLu3P9MEM4XRom1O1sZIZzPjBKH7nxj7WLkBOuYs+cC K0RiOaPEpR8vmEASQgIvGSWW3uQDGcsmoCXR2MkOYooIJErcfK8AUs4ssIBR4tbt9+wg5cIC zhKT9jeD2SwCqhJ7t+8Hs3kFLCW6z09jh9glL7H/4FlmEJtTwErizbILbBA1ghInZz5hAbGZ gWqat85mBlkgIXCDQ+JRwxlmiGYXiVdvXkPZwhKvjm+BGioj8X/nfCYIu1ri6Y3fUM0tjBL9 O9ezQcLFWqLvTA6IySygKbF+lz5EuaPEytsLmCAq+CRuvBWEOIFPYtK26cwQYV6JjjYhiGol iZ0/n0AtlZC43DSHBcL2kLjW2so0gVFxFpJnZiF5ZhbC3gWMzKsYxVNLi3PTU4sN81LL9YoT c4tL89L1kvNzNzECE9Lpf8c/7WCc++qj3iFGJg7GQ4wSHMxKIrw/XExThHhTEiurUovy44tK c1KLDzFKc7AoifNq255MFhJITyxJzU5NLUgtgskycXBKNTDJhu5pznnao+2xz75dVrQiY9Ph uvKj6178jNq84qeBu9VUAZ2Ne/qkrLNFVew4N8T5bxGQSj1wPyq07LTtxy2fGXI+x4Z/tkur S58t5SnzImRHkquBodINyUbTKqv42PdrJlyqPxsopKG0Mc3vfO2KD8VmDzn3bX9f7zZLuWXB ttaZPD8Fk9jO5G+cpZSR1dx7xtZEuF9y9oIdvhna/5d8MFm0LtHB+uXxiRPPLLzMksE1XSSd f9J57WWp6+3ntqSuUpSqEdM/wnlz9jW1IvnHahkdqzI9WNZ1n/RpY555p2ez7ZMT14/1Lvnz Jnyam2nvE3HxhYw/FuY9iA1QlerRnafVc5HjqmSBb0+rlBJLcUaioRZzUXEiALKT/Eq3AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKIsWRmVeSWpSXmKPExsVy+t/xu7raJpYpBkd0LeasX8Nm8frwJ0aL mwd2MlnsWTQJSOw9yWJxedccNosbE54yWnxe2sJucf7vcVaL3z/msDlweWxeoeWxaVUnm8eJ Gb9ZPPq2rGL02Hy62uPzJjmPTU/eMgWwR+nZFOWXlqQqZOQXl9gqRRtaGOkZWlroGZlY6hka m8daGZkq6dvZpKTmZJalFunbJehlzH2vULBduGLDh79MDYxTBboYOTkkBEwk5uy5wNrFyMUh JLCUUeLtydMsEAkJidsLmxghbGGJP9e62CCKnjNKHLg0GaiDg4NNQEuisZMdpEZEIFXi9ImP YDXMAssYJdbMfcEGkhAWcJaYtL8ZrIhFQFVi7/b9YDavgKVE9/lp7BAL5CX2HzzLDGJzClhJ vFl2AaxXCKimfcsSFoh6QYmTM5+A2cxA9c1bZzNPYBSYhSQ1C0lqASPTKkaR1NLi3PTcYiO9 4sTc4tK8dL3k/NxNjMD42Xbs55YdjCtffdQ7xMjEwXiIUYKDWUmE94eLaYoQb0piZVVqUX58 UWlOavEhRlOguycyS4km5wMjOK8k3tDMwNTQxMzSwNTSzFhJnNezoCNRSCA9sSQ1OzW1ILUI po+Jg1OqgaljJst23cpHUYuNHir4nD4dOJvx7fn1H64smVIRbCGhLfr+6poNNT7f5KeGv+wP q+r6JLFkkVdFtfa9qU8f2C+W8g3dtC6eYf/cFjP5P5Mv/DOeYBMn1bv/0RfJe38VZp9lXM7w je/Zn2IJ9nMWNd5Of6VsTrw8NyUhQ4Or2JORo/RLT8CSld1Hn3+9uORs1k6/zy+Co45u8qy4 tLDK8L6UHO//1Bn93035n65iuns68m96x9PMWQr7Yt4KMj7IurZC/bPbxzM7RI8uUarc8mGp bnPb4YzSkKKGBy8UFgn0OgpuFjryYHrbhR9dSZlNk3Py771bseXjpYPi5eXJ7x7djU47Fs92 0KYnR+f7HWZ7JZbijERDLeai4kQAfZNdcigDAAA= X-CMS-MailID: 20230414110827eucas1p1b872c350b7e81f01e65ba0985082ba20 X-Msg-Generator: CA X-RootMTR: 20230414110827eucas1p1b872c350b7e81f01e65ba0985082ba20 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20230414110827eucas1p1b872c350b7e81f01e65ba0985082ba20 References: <20230414110821.21548-1-p.raghav@samsung.com> X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763150842287256019?= X-GMAIL-MSGID: =?utf-8?q?1763150842287256019?= Folio version of create_empty_buffers(). This is required to convert create_page_buffers() to create_folio_buffers() later in the series. It removes several calls to compound_head() as it works directly on folio compared to create_empty_buffers(). Signed-off-by: Pankaj Raghav --- fs/buffer.c | 34 ++++++++++++++++++++++++++++++++++ include/linux/buffer_head.h | 2 ++ 2 files changed, 36 insertions(+) diff --git a/fs/buffer.c b/fs/buffer.c index 0f9c2127543d..9e6a1a738fb5 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -1645,6 +1645,40 @@ void block_invalidate_folio(struct folio *folio, size_t offset, size_t length) } EXPORT_SYMBOL(block_invalidate_folio); +/* + * We attach and possibly dirty the buffers atomically wrt + * block_dirty_folio() via private_lock. try_to_free_buffers + * is already excluded via the folio lock. + */ +void folio_create_empty_buffers(struct folio *folio, unsigned long blocksize, + unsigned long b_state) +{ + struct buffer_head *bh, *head, *tail; + + head = alloc_folio_buffers(folio, blocksize, true); + bh = head; + do { + bh->b_state |= b_state; + tail = bh; + bh = bh->b_this_page; + } while (bh); + tail->b_this_page = head; + + spin_lock(&folio->mapping->private_lock); + if (folio_test_uptodate(folio) || folio_test_dirty(folio)) { + bh = head; + do { + if (folio_test_dirty(folio)) + set_buffer_dirty(bh); + if (folio_test_uptodate(folio)) + set_buffer_uptodate(bh); + bh = bh->b_this_page; + } while (bh != head); + } + folio_attach_private(folio, head); + spin_unlock(&folio->mapping->private_lock); +} +EXPORT_SYMBOL(folio_create_empty_buffers); /* * We attach and possibly dirty the buffers atomically wrt diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index d5a2ef9b4cdf..8afa91cbb8e2 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -203,6 +203,8 @@ struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size, bool retry); void create_empty_buffers(struct page *, unsigned long, unsigned long b_state); +void folio_create_empty_buffers(struct folio *, unsigned long, + unsigned long b_state); void end_buffer_read_sync(struct buffer_head *bh, int uptodate); void end_buffer_write_sync(struct buffer_head *bh, int uptodate); void end_buffer_async_write(struct buffer_head *bh, int uptodate); From patchwork Fri Apr 14 11:08:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pankaj Raghav X-Patchwork-Id: 83373 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp313608vqo; Fri, 14 Apr 2023 04:41:21 -0700 (PDT) X-Google-Smtp-Source: AKy350bIs92jSaajNZSKrmu7bNTT/slH3g6ocG1bpjrgnZHhSwz2ANP6RrZsjT7ga2Cb9DHy/BZy X-Received: by 2002:a05:6a20:8922:b0:dc:76bb:b09b with SMTP id i34-20020a056a20892200b000dc76bbb09bmr4675949pzg.5.1681472481621; Fri, 14 Apr 2023 04:41:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681472481; cv=none; d=google.com; s=arc-20160816; b=eIbttiJl0wNTS2AzCE86FxDaEUb+TXnUETeiBluQoTNakGxzCa7Ks2ouQNl6Ec9a+U G8AUYHHe9y8wr5CcMo2CJG42hCpzDgRdYHZCdEWHYsZDv5xu2SfuX4HcdrTXhmPh7Rh6 mcjCLW8auYBXq0lQI0Fp5I66YGptwNENgUWWWVPMC0cBF2eTO9aP1S+2dC41AjJZs7Xu HyGe3TK3ntT1FbB4lHbue40Y0aUWZhwcYpD8KDFYUzm9TOiFgxTr0IWuSthddiYJCl+K 01aLuzC0/8+PXPREsHnoW58j4pOpk/zxYz76GG+7sZRdpO7uzk+W4f0+6dxoAlkrksgO ZDRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:cms-type:content-transfer-encoding :mime-version:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=mYP1zNZlkNSFYYEZy1X4gVz5Ukcj0nQ95dBohrnlJJM=; b=a5Jqm2I79qy+Q+jTwMmcQoIMUKGltMeuhrUmldWFvloCPm37n0ZD7I1eiwjLmMfymX 6Ai0emjBSo5oBNnelDP8Yug0QQb87bpHE/y/YgO42V7bPMvpv4gRQPUbqfIbYuCPHw3N Lp6hOeqgr+fR36IKnCeO5F3R08iHKeFAU3Q0PW0rkpU/IVpSXdS5loJv65gSp3k8pOzl FfRq3QiuPkRoKG7QBMj4r7dcl+TOr3Q2Te4+49DkF3ahnwNt3zono4b5wbDwfFkGLJby Z8nOJCSVy8Z32zb31SQhPMotefIrbQdqiFP5B4moNrJtTzue+Od68sXrbeJ3psHvTxwn 7uyA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=Fbx4sqB5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h28-20020a63f91c000000b00508d4eae759si4364240pgi.231.2023.04.14.04.41.06; Fri, 14 Apr 2023 04:41:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=Fbx4sqB5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231159AbjDNLIo (ORCPT + 99 others); Fri, 14 Apr 2023 07:08:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230129AbjDNLId (ORCPT ); Fri, 14 Apr 2023 07:08:33 -0400 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 465F8138 for ; Fri, 14 Apr 2023 04:08:32 -0700 (PDT) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20230414110829euoutp0117772c4527c9ce8875f0d6672b3212f1~VyITxTiGK1544715447euoutp01B for ; Fri, 14 Apr 2023 11:08:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20230414110829euoutp0117772c4527c9ce8875f0d6672b3212f1~VyITxTiGK1544715447euoutp01B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1681470509; bh=mYP1zNZlkNSFYYEZy1X4gVz5Ukcj0nQ95dBohrnlJJM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Fbx4sqB55TW2FIa6EbR+LpMXJuU6PZqdqlPW/7FVdgNspqOTNdJZizrnu3VNCjKVj MDk67wo/G75wy+a3bsVu0xUQ5UBYyzQbr4ayulLqmdMgKGD4REB/O6NVtKTZw5tJch GpZavB1tnFRYrQEdoVsy0S4bYjXMx2/UdbJ2HMHE= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20230414110828eucas1p27a02cf6a0489c892cebb71a142cd12d6~VyIS6P83_0295002950eucas1p2D; Fri, 14 Apr 2023 11:08:28 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 73.9A.09503.C2439346; Fri, 14 Apr 2023 12:08:28 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20230414110827eucas1p20e5f6bc74025acfb62b13465f267fa84~VyISX3-6I0896208962eucas1p2W; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20230414110827eusmtrp23a6f6eb3620adf6cec0cd8f777b64956~VyISXJW7G0913109131eusmtrp2X; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) X-AuditID: cbfec7f2-ea5ff7000000251f-9f-6439342c4e39 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id DF.39.34412.B2439346; Fri, 14 Apr 2023 12:08:27 +0100 (BST) Received: from localhost (unknown [106.210.248.243]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20230414110827eusmtip23f72b25a7070947a365203c3b088f67a~VyISIV5tx2822728227eusmtip2L; Fri, 14 Apr 2023 11:08:27 +0000 (GMT) From: Pankaj Raghav To: brauner@kernel.org, willy@infradead.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, mcgrof@kernel.org, gost.dev@samsung.com, hare@suse.de, Pankaj Raghav Subject: [RFC 4/4] fs/buffer: convert create_page_buffers to create_folio_buffers Date: Fri, 14 Apr 2023 13:08:21 +0200 Message-Id: <20230414110821.21548-5-p.raghav@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230414110821.21548-1-p.raghav@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGKsWRmVeSWpSXmKPExsWy7djP87o6JpYpBk/XcVjMWb+GzeL14U+M FjcP7GSy2LNoEpDYe5LF4vKuOWwWNyY8ZbT4vLSF3eL83+OsFr9/zGFz4PLYvELLY9OqTjaP EzN+s3j0bVnF6LH5dLXH501yHpuevGUKYI/isklJzcksSy3St0vgytjbuJCxoF244tduqQbG y/xdjJwcEgImEtOOXGTpYuTiEBJYwSjRsuAmE4TzhVFi9c6b7BDOZ0aJxdP+M8O0XN92gBEi sRwo0TwFynnJKLFxfS9bFyMHB5uAlkRjJzuIKSKQKHHzvQJICbPAAkaJW7ffs4MMEhYIlpi3 ZS0TiM0ioCpx6/hONhCbV8BS4vDazewQy+Ql9h88C7aYU8BK4s2yC1A1ghInZz5hAbGZgWqa t85mBlkgIXCFQ+LciYNQl7pIPL7eDmULS7w6vgVqqIzE/53zmSDsaomnN35DNbcwSvTvXA/2 gISAtUTfmRwQk1lAU2L9Ln2IckeJf5f+s0BU8EnceCsIcQKfxKRt05khwrwSHW1CENVKEjt/ PoFaKiFxuWkOC4TtIbHgwTzGCYyKs5A8MwvJM7MQ9i5gZF7FKJ5aWpybnlpsmJdarlecmFtc mpeul5yfu4kRmJRO/zv+aQfj3Fcf9Q4xMnEwHmKU4GBWEuH94WKaIsSbklhZlVqUH19UmpNa fIhRmoNFSZxX2/ZkspBAemJJanZqakFqEUyWiYNTqoEpfqVWstrffW9YZ7zkV8wu+ZJ28hcj Z8GJ4mQp/5r+3pfum5b2eZ4yUNwot+TcgeItUbVbHJw810jaX+fV/PU1qCzo7cTQ+K5LQrsm 6Zzu1ji9hX2KToxo9Zaa1j3JbysaLLpsHBZEZ304yCNgZMNzZMGMqK0pPMmHVJacSZh4LM72 lG/mtoBQNuar79qNNEq+pTDtnzQz+k3ZGsE65z/3N21f8uacffBswS0NsTfFDyQddr5XZZbw 7sUTr/x9P/Oke0pOiFs9O3Gzp8DQfHO65I+GV+vv3SrdEK2t5Vmt2JexY0Yut72KPWvnSluW A1EWtd3sTTO2f2Tx871XInPXZ+tpPbfw5FybP9dc3yixFGckGmoxFxUnAgAU/upCuQMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprGIsWRmVeSWpSXmKPExsVy+t/xe7raJpYpBn+nKVvMWb+GzeL14U+M FjcP7GSy2LNoEpDYe5LF4vKuOWwWNyY8ZbT4vLSF3eL83+OsFr9/zGFz4PLYvELLY9OqTjaP EzN+s3j0bVnF6LH5dLXH501yHpuevGUKYI/SsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQz NDaPtTIyVdK3s0lJzcksSy3St0vQy9jbuJCxoF244tduqQbGy/xdjJwcEgImEte3HWDsYuTi EBJYyihx7vEadoiEhMTthU2MELawxJ9rXWwQRc8ZJW6fX8jcxcjBwSagJdHYCVYvIpAqcfrE R7AaZoFljBJr5r5gA0kICwRKrJ9+GMxmEVCVuHV8J5jNK2ApcXjtZqhl8hL7D55lBrE5Bawk 3iy7AFYjBFTTvmUJC0S9oMTJmU/AbGag+uats5knMArMQpKahSS1gJFpFaNIamlxbnpusZFe cWJucWleul5yfu4mRmAEbTv2c8sOxpWvPuodYmTiYDzEKMHBrCTC+8PFNEWINyWxsiq1KD++ qDQntfgQoynQ3ROZpUST84ExnFcSb2hmYGpoYmZpYGppZqwkzutZ0JEoJJCeWJKanZpakFoE 08fEwSnVwMT7/2TDms6105SNpu9nZNOK+uijlX7i3v5gRmdzb0nvkGjdBRtuZbIKcJvt6pOc t1htV7GXiL9+gHr1PC6rurkX7z0+73D2dZ92euW+s8es/5zV9Lt83VvnvNbW6sCXsyfs/Dc/ fK1qZE0c56Svhu7KNvPZ9V6onSsXV8pc9FPX+rLVw8vXdVOTzX97vGXPkC5SUWc7GxCy1k3n zCm5cLXVHu/Ko5bEHPKpCZRLYlL52a63Yv0LpxNBalN3TWUr3nxs63qvBfcnTfFJ97fyuHF0 9pxVd2w2l7/e8CJ/y8t0tdql1Y4+taxL/PKF3YsF9DhsLm/w+N24MPzfzay5Z1/8kk59XM95 dNucwoqrm5VYijMSDbWYi4oTAdGKN2opAwAA X-CMS-MailID: 20230414110827eucas1p20e5f6bc74025acfb62b13465f267fa84 X-Msg-Generator: CA X-RootMTR: 20230414110827eucas1p20e5f6bc74025acfb62b13465f267fa84 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20230414110827eucas1p20e5f6bc74025acfb62b13465f267fa84 References: <20230414110821.21548-1-p.raghav@samsung.com> X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763151688611131481?= X-GMAIL-MSGID: =?utf-8?q?1763151688611131481?= fs/buffer do not support large folios as there are many assumptions on the folio size to be the host page size. This conversion is one step towards removing that assumption. Also this conversion will reduce calls to compound_head() if create_folio_buffers() calls folio_create_empty_buffers(). Signed-off-by: Pankaj Raghav --- fs/buffer.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index 9e6a1a738fb5..a83d9bf78ca5 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -1802,14 +1802,17 @@ static inline int block_size_bits(unsigned int blocksize) return ilog2(blocksize); } -static struct buffer_head *create_page_buffers(struct page *page, struct inode *inode, unsigned int b_state) +static struct buffer_head *create_folio_buffers(struct folio *folio, + struct inode *inode, + unsigned int b_state) { - BUG_ON(!PageLocked(page)); + BUG_ON(!folio_test_locked(folio)); - if (!page_has_buffers(page)) - create_empty_buffers(page, 1 << READ_ONCE(inode->i_blkbits), - b_state); - return page_buffers(page); + if (!folio_buffers(folio)) + folio_create_empty_buffers(folio, + 1 << READ_ONCE(inode->i_blkbits), + b_state); + return folio_buffers(folio); } /* @@ -1853,8 +1856,8 @@ int __block_write_full_page(struct inode *inode, struct page *page, int nr_underway = 0; blk_opf_t write_flags = wbc_to_write_flags(wbc); - head = create_page_buffers(page, inode, - (1 << BH_Dirty)|(1 << BH_Uptodate)); + head = create_folio_buffers(page_folio(page), inode, + (1 << BH_Dirty) | (1 << BH_Uptodate)); /* * Be very careful. We have no exclusion from block_dirty_folio @@ -2117,7 +2120,7 @@ int __block_write_begin_int(struct folio *folio, loff_t pos, unsigned len, BUG_ON(to > PAGE_SIZE); BUG_ON(from > to); - head = create_page_buffers(&folio->page, inode, 0); + head = create_folio_buffers(folio, inode, 0); blocksize = head->b_size; bbits = block_size_bits(blocksize); @@ -2403,7 +2406,7 @@ int block_read_full_folio(struct folio *folio, get_block_t *get_block) VM_BUG_ON_FOLIO(folio_test_large(folio), folio); - head = create_page_buffers(&folio->page, inode, 0); + head = create_folio_buffers(folio, inode, 0); blocksize = head->b_size; bbits = block_size_bits(blocksize);