From patchwork Thu May 7 21:43:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534993 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1CFEF14B4 for ; Thu, 7 May 2020 21:45:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F3257208DB for ; Thu, 7 May 2020 21:45:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="NAbAsbcC" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726900AbgEGVoU (ORCPT ); Thu, 7 May 2020 17:44:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726751AbgEGVoT (ORCPT ); Thu, 7 May 2020 17:44:19 -0400 Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 87987C05BD0D for ; Thu, 7 May 2020 14:44:19 -0700 (PDT) Received: by mail-ed1-x544.google.com with SMTP id d16so6739247edv.8 for ; Thu, 07 May 2020 14:44:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mR5KN3Pz1n6bpXv2DNeSraShlVTsxJWNxOu3C85SoMg=; b=NAbAsbcCbcOXGfgGm7ahZi0o5gzd0TsLfygSJrNrVrw5vLmqVRWfCI3isz5iFR5mbA STvZy0Ini+hckNV2WvZupD+LtTplGUSiOCIH9BQ4aOETcgeCdIpI3Mj4WzqQem9CXLDe qYqvI/C+O08KvR+8KRty0U7zvjbl56T9lDhJogFf/OcHKnQJ9/6T7DcnRmFb0xuydSVo OCcwBscdI31qgR35JMlzx4rHo/+NUlCVj0gEvFfy2Ss+woreUw2pfXnuKNU5iEfww/Em QGboLZniwFBp/2tvxFy9cYEauvwdXj+tBAzwiJzCfCEprECi1B8+ab9SEyFXMnVToH+E +Dmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mR5KN3Pz1n6bpXv2DNeSraShlVTsxJWNxOu3C85SoMg=; b=Or0WGD59D0EIzzdu429Iov5rdMK6XW7VwB4KcuAQzDIMDSSeww6Vu/MDp2eTOt2V27 rCNB4s+NDoVS+DQii7dxiK1KtzTxTzRGBsOGpP93ZeGt926tg2nioObBgXMVYnsRAI4I EqdwdUgfoo714l/oO416vfhD4q14v3Mu2IWFlV4BH8gmf2VG9DyKyAm5xl9a2XOi1BME phmN+HLuTJKUqhUlD6mhK15zGg/lBq/fufOt1qn1YEjIYfuFDmgfgLpD7fLxfdeKy02e 9ErHz4YEQKopEHlANdgLXsl+AVe8rJAYF+yH8NUNaJfJ+/AGh6dzaMXb7zK5QXJaUDP3 MBGQ== X-Gm-Message-State: AGi0PuZTu8ikqvKmUjTrafumH7n94JaPgaJkZ/QqSeOzYtAmKaf8shyn 6oIiP1PZicbs3ma3U7UdnhrW08UYg64i0w== X-Google-Smtp-Source: APiQypLmX8YHBXb7kua9dEsVAJulVEp2exuqcsxlWLEdtzHF8lGn1ZzGxVKJFdK6oe8J4dems5+T3w== X-Received: by 2002:a05:6402:221c:: with SMTP id cq28mr13246566edb.50.1588887857976; Thu, 07 May 2020 14:44:17 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:17 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Andrew Morton , linux-mm@kvack.org, "Darrick J. Wong" , William Kucharski , "Kirill A. Shutemov" , Andreas Gruenbacher , Yang Shi , Yafang Shao , Song Liu , linux-raid@vger.kernel.org, Chris Mason , Josef Bacik , David Sterba , linux-btrfs@vger.kernel.org, Alexander Viro , Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net, linux-xfs@vger.kernel.org, Anton Altaparmakov , linux-ntfs-dev@lists.sourceforge.net, Mike Marshall , Martin Brandenburg , devel@lists.orangefs.org, Thomas Gleixner , Sebastian Andrzej Siewior , Roman Gushchin , Andreas Dilger Subject: [RFC PATCH V3 01/10] include/linux/pagemap.h: introduce attach/detach_page_private Date: Thu, 7 May 2020 23:43:51 +0200 Message-Id: <20200507214400.15785-2-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> MIME-Version: 1.0 Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org The logic in attach_page_buffers and __clear_page_buffers are quite paired, but 1. they are located in different files. 2. attach_page_buffers is implemented in buffer_head.h, so it could be used by other files. But __clear_page_buffers is static function in buffer.c and other potential users can't call the function, md-bitmap even copied the function. So, introduce the new attach/detach_page_private to replace them. With the new pair of function, we will remove the usage of attach_page_buffers and __clear_page_buffers in next patches. Thanks for suggestions about the function name from Alexander Viro, Andreas Grünbacher, Christoph Hellwig and Matthew Wilcox. Suggested-by: Matthew Wilcox Cc: Andrew Morton Cc: linux-mm@kvack.org Cc: "Darrick J. Wong" Cc: William Kucharski Cc: "Kirill A. Shutemov" Cc: Andreas Gruenbacher Cc: Yang Shi Cc: Yafang Shao Cc: Song Liu Cc: linux-raid@vger.kernel.org Cc: Chris Mason Cc: Josef Bacik Cc: David Sterba Cc: linux-btrfs@vger.kernel.org Cc: Alexander Viro Cc: Jaegeuk Kim Cc: Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net Cc: Christoph Hellwig Cc: linux-xfs@vger.kernel.org Cc: Anton Altaparmakov Cc: linux-ntfs-dev@lists.sourceforge.net Cc: Mike Marshall Cc: Martin Brandenburg Cc: devel@lists.orangefs.org Cc: Thomas Gleixner Cc: Sebastian Andrzej Siewior Cc: Roman Gushchin Cc: Andreas Dilger Signed-off-by: Guoqing Jiang --- RFC V2 -> RFC V3: 1. rename clear_page_private to detach_page_private. 2. updated the comments for the two functions. RFC -> RFC V2: Address the comments from Christoph Hellwig 1. change function names to attach/clear_page_private and add comments. 2. change the return type of attach_page_private. include/linux/pagemap.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index a8f7bd8ea1c6..99dd93188a5e 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -205,6 +205,43 @@ static inline int page_cache_add_speculative(struct page *page, int count) return __page_cache_add_speculative(page, count); } +/** + * attach_page_private - Attach private data to a page. + * @page: Page to attach data to. + * @data: Data to attach to page. + * + * Attaching private data to a page increments the page's reference count. + * The data must be detached before the page will be freed. + */ +static inline void attach_page_private(struct page *page, void *data) +{ + get_page(page); + set_page_private(page, (unsigned long)data); + SetPagePrivate(page); +} + +/** + * detach_page_private - Detach private data from a page. + * @page: Page to detach data from. + * + * Removes the data that was previously attached to the page and decrements + * the refcount on the page. + * + * Return: Data that was attached to the page. + */ +static inline void *detach_page_private(struct page *page) +{ + void *data = (void *)page_private(page); + + if (!PagePrivate(page)) + return NULL; + ClearPagePrivate(page); + set_page_private(page, 0); + put_page(page); + + return data; +} + #ifdef CONFIG_NUMA extern struct page *__page_cache_alloc(gfp_t gfp); #else From patchwork Thu May 7 21:43:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534967 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C1822139A for ; Thu, 7 May 2020 21:44:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AA880208E4 for ; Thu, 7 May 2020 21:44:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="BwT/Zh3w" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727071AbgEGVoW (ORCPT ); Thu, 7 May 2020 17:44:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726926AbgEGVoV (ORCPT ); Thu, 7 May 2020 17:44:21 -0400 Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C339DC05BD43 for ; Thu, 7 May 2020 14:44:20 -0700 (PDT) Received: by mail-ed1-x544.google.com with SMTP id l3so6705359edq.13 for ; Thu, 07 May 2020 14:44:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=nRmHX3IZZP32x36RObq8cJr3jcmYRzNNrV24AaRSD3Q=; b=BwT/Zh3w5Ab/2fyrWKjcImjnCLggazQc5C+NxIqfPv7fWBCfut0N3l156Zqibr5H47 cI5J4ono9XJ8qJ9rDaMRJlcuwuIZBxSUTRJOrkFEJ9EPJmu38UutefuP0qibEyeDhguL sU5BY7JZW4JNRQrJiYUJtzEVYWJpPYwSQZRdF+8sI3Z+F/CK/fiJAysAbbLy+Vp3naDf gUQvavWsolWGkgXU9XkGB6E5mPg7vARWDkkNfUITP5FYfD30vkbWgx6WwVpiDtHEOUZZ C4ecKMvVonzP+dt4s0jxzpuO3NCSo6CE9eOd9AOyPnNqOtiBMzlmw2TTULpRknpxApAN QLNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=nRmHX3IZZP32x36RObq8cJr3jcmYRzNNrV24AaRSD3Q=; b=m9Gpx7T1tCPzEGX25gdFvK7tIOOgIJJV75Yuhb9EU5154MKdKEy12e+XdFTVcEKuvg d5eM5f87qkJ93M0lk7tKWedODWlDw8kJnwq1J9xn8472YU8e3EZUnR7QPUxRpytDQpGr Y4OpZlMcBpKVCQLM0wrrw+QC3rzZJvl0bJ3m+75Lw60ImjCNPFL/Otat+8ig+OSNxnwW UvGIzIT1+7RacQfXGOjJ9H7OUeRGQecyYeybBm/pLK8gxet2vENHBC7y2w6goKPuDwo8 QNBw6me7lwT0ggWu9Av1TZhY4mrhs0xvIRi80GpfKmaBZGHG/sg7EwUU1ZyAdbgASUJa ggxQ== X-Gm-Message-State: AGi0PuY0UudXqaTakT/FI7lxDRbLxWAvIbDnnql4D9IfAPG4m7/7keWZ L/Ek+kOe+fxJEtPwqfdKWpfKAf702tW1Iw== X-Google-Smtp-Source: APiQypLzMcqBJI/17Vgt7qv4BkMPLnn8Kb2liCXz1NippJB7rxuZ91wxVX1EIVwT7gew8QEwlM4s9Q== X-Received: by 2002:a50:88a6:: with SMTP id d35mr8080403edd.238.1588887859059; Thu, 07 May 2020 14:44:19 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:18 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Song Liu , linux-raid@vger.kernel.org Subject: [RFC PATCH V3 02/10] md: remove __clear_page_buffers and use attach/detach_page_private Date: Thu, 7 May 2020 23:43:52 +0200 Message-Id: <20200507214400.15785-3-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org After introduce attach/detach_page_private in pagemap.h, we can remove the duplicat code and call the new functions. Cc: Song Liu Cc: linux-raid@vger.kernel.org Signed-off-by: Guoqing Jiang Acked-by: Song Liu --- RFC V2 -> RFC V3 1. rename clear_page_private to detach_page_private. RFC -> RFC V2 1. change the name of new functions to attach/clear_page_private. drivers/md/md-bitmap.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index b952bd45bd6a..95a5f3757fa3 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -324,14 +324,6 @@ static void end_bitmap_write(struct buffer_head *bh, int uptodate) wake_up(&bitmap->write_wait); } -/* copied from buffer.c */ -static void -__clear_page_buffers(struct page *page) -{ - ClearPagePrivate(page); - set_page_private(page, 0); - put_page(page); -} static void free_buffers(struct page *page) { struct buffer_head *bh; @@ -345,7 +337,7 @@ static void free_buffers(struct page *page) free_buffer_head(bh); bh = next; } - __clear_page_buffers(page); + detach_page_private(page); put_page(page); } @@ -374,7 +366,7 @@ static int read_page(struct file *file, unsigned long index, ret = -ENOMEM; goto out; } - attach_page_buffers(page, bh); + attach_page_private(page, bh); blk_cur = index << (PAGE_SHIFT - inode->i_blkbits); while (bh) { block = blk_cur; From patchwork Thu May 7 21:43:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534989 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8A8C114B4 for ; Thu, 7 May 2020 21:44:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6D48021473 for ; Thu, 7 May 2020 21:44:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="byF7VyPn" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727097AbgEGVoz (ORCPT ); Thu, 7 May 2020 17:44:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727051AbgEGVoW (ORCPT ); Thu, 7 May 2020 17:44:22 -0400 Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com [IPv6:2a00:1450:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0EEDBC05BD0B for ; Thu, 7 May 2020 14:44:22 -0700 (PDT) Received: by mail-ej1-x644.google.com with SMTP id s9so5896239eju.1 for ; Thu, 07 May 2020 14:44:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=5bOWsbby9E+qmMGJsuMwgUAgEfU2kO6P0jdaZ6pAtUk=; b=byF7VyPnLI+nh2I1eprmmNFINZ+NJ5pkCzxdpNRuekTuNjT51vhh3CkV59wkiwN6XH krwChNxiVaVptfaH/K+bCu0LY0cnQl5xilBXoOas9PauRDAkXOKPqe01yfPQuPx1XduZ A0TAiHE+AOTm+JRQPZP2nACr3Ul4ObfdoQGrxi+Cpr1bPzmZoE1CWkqpf+/r3ex3IIW2 yZD1J7LPkidCeei/H6Hf6xaOAj2urjtMyLqyv0kw8rUdyUIpSq2wMms6dl/9ktOCl4VB 9T6Fo6/2uYHMb6SPeVBuh+nwu7QH+Z1b83muCKIBcRYEGskyNZwNJKFacUigra42hXmQ eB9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=5bOWsbby9E+qmMGJsuMwgUAgEfU2kO6P0jdaZ6pAtUk=; b=AYls3Ihl9BhM0eqlQOaR/i/TCyBDktw7/kgyCEm3oNlqxbuQKz1AwvPsAlYTnXwj7y w+GI7pNUoLhHco8Pqx4AGHsEzLkLIRPLc4LIrzamj3RhgKflzYhPDe4R7PUEkqKkXd40 VGDI3KlUBhQmjQgaKL93cNSTTAqQNPSk9EP8dc0z8o53y3msA7pchGN1Ors8DxtX2P+l 7Ue2snWNtdS5wSSgVEEB1Tbb/T28H7FCWxBW1ZndlTVfrAf60kIqwdVdWpn3fb6jGCDU fccv9c4nxuFRi8JxeSKzC585mcnqUghZo41d8zUJY03Wv2AMM2xhGi9HNDFUmIti06Nm qiMQ== X-Gm-Message-State: AGi0PuYtDLooNsqwWVtB0GKhtwMs5y+qU+HYR/OFkeYwonTOkgfilql7 ObcqwiaCXOqaPRIzsenJyuG/7BaN70hCkA== X-Google-Smtp-Source: APiQypKvd5mkRt0RGmY7O6yLJA3U6CWrKQQMB1yksU+oUQ9QxRNgVpW7n33l2Cd6M0LU0va+oSuwEA== X-Received: by 2002:a17:906:3952:: with SMTP id g18mr14340273eje.191.1588887860372; Thu, 07 May 2020 14:44:20 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:19 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Chris Mason , Josef Bacik , David Sterba , linux-btrfs@vger.kernel.org Subject: [RFC PATCH V3 03/10] btrfs: use attach/detach_page_private Date: Thu, 7 May 2020 23:43:53 +0200 Message-Id: <20200507214400.15785-4-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Since the new pair function is introduced, we can call them to clean the code in btrfs. Cc: Chris Mason Cc: Josef Bacik Cc: David Sterba Cc: linux-btrfs@vger.kernel.org Signed-off-by: Guoqing Jiang --- RFC V2 -> RFC V3 1. rename clear_page_private to detach_page_private. RFC -> RFC V2 1. change the name of new functions to attach/clear_page_private. 2. call attach_page_private(newpage, clear_page_private(page)) to cleanup code further as suggested by Dave Chinner. fs/btrfs/disk-io.c | 4 +--- fs/btrfs/extent_io.c | 21 ++++++--------------- fs/btrfs/inode.c | 23 +++++------------------ 3 files changed, 12 insertions(+), 36 deletions(-) diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index d10c7be10f3b..7278789ff8a7 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -980,9 +980,7 @@ static void btree_invalidatepage(struct page *page, unsigned int offset, btrfs_warn(BTRFS_I(page->mapping->host)->root->fs_info, "page private not zero on page %llu", (unsigned long long)page_offset(page)); - ClearPagePrivate(page); - set_page_private(page, 0); - put_page(page); + detach_page_private(page); } } diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 39e45b8a5031..bf816387715b 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -3076,22 +3076,16 @@ static int submit_extent_page(unsigned int opf, static void attach_extent_buffer_page(struct extent_buffer *eb, struct page *page) { - if (!PagePrivate(page)) { - SetPagePrivate(page); - get_page(page); - set_page_private(page, (unsigned long)eb); - } else { + if (!PagePrivate(page)) + attach_page_private(page, eb); + else WARN_ON(page->private != (unsigned long)eb); - } } void set_page_extent_mapped(struct page *page) { - if (!PagePrivate(page)) { - SetPagePrivate(page); - get_page(page); - set_page_private(page, EXTENT_PAGE_PRIVATE); - } + if (!PagePrivate(page)) + attach_page_private(page, (void *)EXTENT_PAGE_PRIVATE); } static struct extent_map * @@ -4929,10 +4923,7 @@ static void btrfs_release_extent_buffer_pages(struct extent_buffer *eb) * We need to make sure we haven't be attached * to a new eb. */ - ClearPagePrivate(page); - set_page_private(page, 0); - /* One for the page private */ - put_page(page); + detach_page_private(page); } if (mapped) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 320d1062068d..a7f7ff0a8b7c 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -8303,11 +8303,8 @@ btrfs_readpages(struct file *file, struct address_space *mapping, static int __btrfs_releasepage(struct page *page, gfp_t gfp_flags) { int ret = try_release_extent_mapping(page, gfp_flags); - if (ret == 1) { - ClearPagePrivate(page); - set_page_private(page, 0); - put_page(page); - } + if (ret == 1) + detach_page_private(page); return ret; } @@ -8329,14 +8326,8 @@ static int btrfs_migratepage(struct address_space *mapping, if (ret != MIGRATEPAGE_SUCCESS) return ret; - if (page_has_private(page)) { - ClearPagePrivate(page); - get_page(newpage); - set_page_private(newpage, page_private(page)); - set_page_private(page, 0); - put_page(page); - SetPagePrivate(newpage); - } + if (page_has_private(page)) + attach_page_private(newpage, detach_page_private(page)); if (PagePrivate2(page)) { ClearPagePrivate2(page); @@ -8458,11 +8449,7 @@ static void btrfs_invalidatepage(struct page *page, unsigned int offset, } ClearPageChecked(page); - if (PagePrivate(page)) { - ClearPagePrivate(page); - set_page_private(page, 0); - put_page(page); - } + detach_page_private(page); } /* From patchwork Thu May 7 21:43:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534985 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BC9F6912 for ; Thu, 7 May 2020 21:44:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A458821473 for ; Thu, 7 May 2020 21:44:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="MiE+Ud43" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727096AbgEGVoY (ORCPT ); Thu, 7 May 2020 17:44:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727084AbgEGVoX (ORCPT ); Thu, 7 May 2020 17:44:23 -0400 Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com [IPv6:2a00:1450:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7FD9C05BD0A for ; Thu, 7 May 2020 14:44:22 -0700 (PDT) Received: by mail-ej1-x641.google.com with SMTP id s9so5896276eju.1 for ; Thu, 07 May 2020 14:44:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=du3Ie5iI06/rdz6CvBPo+dvSjUqDqQE7i/LV2aJP+GA=; b=MiE+Ud43dKkBLTxwwtjTs8umgmPkN0BYwfIJF9NimpzgXaIoLUNwUPzrYIMfxjp/wE 9z7US+ja9ZyQtJgqqQIWp21xQ1iOfe4ZgjJytHnEpV/HgRot8yYEuaSkR1lrjKRQtJWL SDy6+wKTfKyvFcVN2gr2WozwC7ThujTOvGVSBqNU8k8SlUaLgdDrqXEEzDqPLenmaVQf AEriawM+qcLmVmMqDnbfaqwG2jfhJisNwoFCodJ2W0L86jMRiXofvUsXlEKRNlHFYKFy UbH5e9SqflHWa7fKLZUcGwAbbt7xfzUDABCLtZyQIvIAQQxPhVa/Vfs12FCp3Tp5aLxs zQOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=du3Ie5iI06/rdz6CvBPo+dvSjUqDqQE7i/LV2aJP+GA=; b=VPW4v1DO6T0/9ZLYwEtdmoPPWYQ4DaCrGhmyNsuxB+LOp8gstBnst2eejPxSGB/z1W yg1K/Xei7bzkJwswYLbe9XTM6wbHMLHnBHiuRI57Ix0LvRoxW0BUyeTTU/iW8J3mgDnL KKg8mBXBXzIqzvnEaBFeO9ozEq6xyTizhdc9CLo5GgZ7QEX81psixe4lGaoejbtY5/Mt YavyP0x+RYFysYE0n9J+T4bVRdpq9VIfng6FDXoS8bxPi5CLodyzaRJq6Gm1hA+Skdje tN17wmZDwxcDaFrv5ZuBMNT3iqTe7s361ejRyJdPtRzXrj8AA0fk018648xsj1xbqMwc 3VBw== X-Gm-Message-State: AGi0PuZaI7zXy9jB0ixxEuKUCR/R76ktbDKXiIqrT4zuhOyGogNjA/pJ 9y2EhF7fBtgokUlLmATjKmTIcuL048n3rw== X-Google-Smtp-Source: APiQypL4O3/QHa4GVRZbemx7icFjGNwfTGUsTYsyFOjCkG+jrsEi/Fe+zD6Xr+OUjvj3miNQGayvRw== X-Received: by 2002:a17:906:ce4b:: with SMTP id se11mr14818360ejb.178.1588887861475; Thu, 07 May 2020 14:44:21 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:20 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Alexander Viro Subject: [RFC PATCH V3 04/10] fs/buffer.c: use attach/detach_page_private Date: Thu, 7 May 2020 23:43:54 +0200 Message-Id: <20200507214400.15785-5-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Since the new pair function is introduced, we can call them to clean the code in buffer.c. Cc: Alexander Viro Signed-off-by: Guoqing Jiang --- RFC V2 -> RFC V3 1. rename clear_page_private to detach_page_private. RFC -> RFC V2 1. change the name of new functions to attach/clear_page_private. fs/buffer.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index a60f60396cfa..059404658d5d 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -123,14 +123,6 @@ void __wait_on_buffer(struct buffer_head * bh) } EXPORT_SYMBOL(__wait_on_buffer); -static void -__clear_page_buffers(struct page *page) -{ - ClearPagePrivate(page); - set_page_private(page, 0); - put_page(page); -} - static void buffer_io_error(struct buffer_head *bh, char *msg) { if (!test_bit(BH_Quiet, &bh->b_state)) @@ -906,7 +898,7 @@ link_dev_buffers(struct page *page, struct buffer_head *head) bh = bh->b_this_page; } while (bh); tail->b_this_page = head; - attach_page_buffers(page, head); + attach_page_private(page, head); } static sector_t blkdev_max_block(struct block_device *bdev, unsigned int size) @@ -1580,7 +1572,7 @@ void create_empty_buffers(struct page *page, bh = bh->b_this_page; } while (bh != head); } - attach_page_buffers(page, head); + attach_page_private(page, head); spin_unlock(&page->mapping->private_lock); } EXPORT_SYMBOL(create_empty_buffers); @@ -2567,7 +2559,7 @@ static void attach_nobh_buffers(struct page *page, struct buffer_head *head) bh->b_this_page = head; bh = bh->b_this_page; } while (bh != head); - attach_page_buffers(page, head); + attach_page_private(page, head); spin_unlock(&page->mapping->private_lock); } @@ -3227,7 +3219,7 @@ drop_buffers(struct page *page, struct buffer_head **buffers_to_free) bh = next; } while (bh != head); *buffers_to_free = head; - __clear_page_buffers(page); + detach_page_private(page); return 1; failed: return 0; From patchwork Thu May 7 21:43:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534969 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 760B5139A for ; Thu, 7 May 2020 21:44:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5B039208DB for ; Thu, 7 May 2020 21:44:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="C+aZyE0I" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727095AbgEGVo0 (ORCPT ); Thu, 7 May 2020 17:44:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727094AbgEGVoY (ORCPT ); Thu, 7 May 2020 17:44:24 -0400 Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com [IPv6:2a00:1450:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1446C05BD09 for ; Thu, 7 May 2020 14:44:23 -0700 (PDT) Received: by mail-ej1-x644.google.com with SMTP id nv1so5915734ejb.0 for ; Thu, 07 May 2020 14:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iMtexH+KHYg8WWtN7UTgX6eHTynYLEIBFReri4mWFCc=; b=C+aZyE0ItmHGIBdvm5jWSFvyCmt2e6ZkOwlIWvu8b0H63W29ve2rOZlf8y+8y+gmld ZjG9Y4WWIGb+goXnokiWHdrsMqES5X7JaSrEV/fhpzmey1WTqsjlyk0dSmog8gabW9mV UifUcMmnYPlLhVxtwEmS61HoE/D4xiiq4QlqcisbD0nY3ghcTLtx9KUsW/ApbVwG1XCL ujtW37cAyL8CrSDZL+CIJvPXUHwNEt+up9VJjMd9AVr3Bfbx7+OXhE/qvfAsmb6BvPFi 5D+Cv0iQNc/unewS64ruKoLL/NcwnOkWm8MpSRK5TxKVUIEp9V/+mR5uDMaRX7qMEtU2 Xnbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=iMtexH+KHYg8WWtN7UTgX6eHTynYLEIBFReri4mWFCc=; b=b98iOSEtmBmM19M2HVFgNQKVnok9VOLypkN0SAvBSXPSpgTLaI52QIiGLRijZyjz5H QtqnB5WSqFCWySVnApBAuQq36br760DbY4tWQhl+K+EIgfEAv90DbAPtC7B/+CBFwgFR M9zvQdSyzjnciLbLmyVltxDTqWwHpOfRFH9jRvO/RtcDrVMuu/HcZFXZp76i3FnS6Hjw O3YGBNZ43O0tcI2JgN5rwzA1ooTVj1/cEsDbYa/wjUJ6/pcLYKUwZukTcYR7X+89jQZF Z0NsHpvFNPQCfAakV4oPuYB8EsejcDb5qFXMhfImZ12sE7VkEXBEhRUoJ7c3u3Idufrh etPQ== X-Gm-Message-State: AGi0PuZo50AGw/f7KldvrrD6wwqz9VVXk5PMGIsTcCsrHePMTMwkwwDn j7lyveA2AjuMf30a7r36HrJLNaZR8Zj2vQ== X-Google-Smtp-Source: APiQypIlXXZdUeLWAD5u56J3xlbgzi0w5YqlZnrUpLQfikzSZE7i3StNg5L+SIQQChqhUCbofsEzFg== X-Received: by 2002:a17:906:5608:: with SMTP id f8mr14610196ejq.190.1588887862357; Thu, 07 May 2020 14:44:22 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:21 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net Subject: [RFC PATCH V3 05/10] f2fs: use attach/detach_page_private Date: Thu, 7 May 2020 23:43:55 +0200 Message-Id: <20200507214400.15785-6-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Since the new pair function is introduced, we can call them to clean the code in f2fs.h. Cc: Jaegeuk Kim Cc: Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net Acked-by: Chao Yu Signed-off-by: Guoqing Jiang --- RFC V2 -> RFC V3 1. rename clear_page_private to detach_page_private. RFC -> RFC V2 1. change the name of new functions to attach/clear_page_private. fs/f2fs/f2fs.h | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index ba470d5687fe..6920d1a88289 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -3051,19 +3051,12 @@ static inline void f2fs_set_page_private(struct page *page, if (PagePrivate(page)) return; - get_page(page); - SetPagePrivate(page); - set_page_private(page, data); + attach_page_private(page, (void *)data); } static inline void f2fs_clear_page_private(struct page *page) { - if (!PagePrivate(page)) - return; - - set_page_private(page, 0); - ClearPagePrivate(page); - f2fs_put_page(page, 0); + detach_page_private(page); } /* From patchwork Thu May 7 21:43:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534983 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0E9AF912 for ; Thu, 7 May 2020 21:44:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E5A9F20CC7 for ; Thu, 7 May 2020 21:44:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="FZ6fTGY3" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727109AbgEGVot (ORCPT ); Thu, 7 May 2020 17:44:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727100AbgEGVoZ (ORCPT ); Thu, 7 May 2020 17:44:25 -0400 Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com [IPv6:2a00:1450:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DF48C05BD0C for ; Thu, 7 May 2020 14:44:25 -0700 (PDT) Received: by mail-ej1-x641.google.com with SMTP id a2so5906523ejx.5 for ; Thu, 07 May 2020 14:44:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=W6k+nr3o33Kw7lh1iadEOaXBpO+mApJUEyA7nm+lCVE=; b=FZ6fTGY3spuMmoNHovS2scKLAy45oECWLSGK4J8REO6bw+4MW2ufoPSSSNz4nTBrTA uyubEJPaMyOadZhoVN6d8x5b6qP9FkAjC5BD3T9F4XzBwEM1H3m07rKkz/xDgE2jdqEd AdgyKlLCvCmG9+hMQUHlzORPrlkfhvL4lq26Z99gjOTMmSTjirVXLYol/xQD0R+jCnAQ lt5rSDUMrEw2zSDAUP7bn4kKRw+dTD8510FerIpIoLJXGNEopsr8Mo2A9Fp6zFJllyyZ 2XainexmOGHw1py11wgLiDhzo6t7UCj7LAKSxLHZ2MLOs4ZoeMFE7eGI/nf/D6J/Gwko vFLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=W6k+nr3o33Kw7lh1iadEOaXBpO+mApJUEyA7nm+lCVE=; b=Z6h8U1PSu7GVovHfsvADSWJTJjegq2n0+DsJU6WzQn2QGr99RH3t1H+Is7vEi2O4gb 7rNJGkrhk7GLeX9NnrS3Ih0sIIYBzSQ8XejEJjn4OcoeoKAqbLGcYMSiKl6mC3Dn/mvs iy2NfV3TvwUk9D1F/WJvfPcKhA06IW1oINEH7M4K2lIGOw6G5uO8lZB/5SqWwpzUIBxI P/Ctupckquk63uQhSigVOsgCy0x1PS1mgwzaQ5GHcf/8agYQtI+sfY42GChATdlUpwjS wl5QKsGjnGt35VdcIoidjIJm2117AvMXtQr+4Qb3O4LQO79CMhRjnai6r7BObD3n1mYK G9wA== X-Gm-Message-State: AGi0PubswvPVqF9C7OVsVw1NU36qTtuuxlopPfIkIkwYSZHxHCJyI2kD MbV9XXLlpVceYPYsNc+lEXv4D9UCdHy4kA== X-Google-Smtp-Source: APiQypIckrilpe/P2KXWHHZo9iDvOLXPRDY7mDU2aaijzmxr5jlijOIHu1HNfh0s2byb0fH7SXD01g== X-Received: by 2002:a17:906:4714:: with SMTP id y20mr14594259ejq.5.1588887863537; Thu, 07 May 2020 14:44:23 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:22 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , "Darrick J. Wong" , linux-xfs@vger.kernel.org Subject: [RFC PATCH V3 06/10] iomap: use attach/detach_page_private Date: Thu, 7 May 2020 23:43:56 +0200 Message-Id: <20200507214400.15785-7-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Since the new pair function is introduced, we can call them to clean the code in iomap. Cc: Christoph Hellwig Cc: "Darrick J. Wong" Cc: linux-xfs@vger.kernel.org Signed-off-by: Guoqing Jiang --- RFC V2 -> RFC V3 1. rename clear_page_private to detach_page_private. RFC -> RFC V2 1. change the name of new functions to attach/clear_page_private. 2. call attach_page_private(newpage, clear_page_private(page)) to cleanup code further as suggested by Matthew Wilcox. 3. don't return attach_page_private in iomap_page_create per the comment from Christoph Hellwig. fs/iomap/buffered-io.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 89e21961d1ad..e3031007b4ae 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -59,24 +59,19 @@ iomap_page_create(struct inode *inode, struct page *page) * migrate_page_move_mapping() assumes that pages with private data have * their count elevated by 1. */ - get_page(page); - set_page_private(page, (unsigned long)iop); - SetPagePrivate(page); + attach_page_private(page, iop); return iop; } static void iomap_page_release(struct page *page) { - struct iomap_page *iop = to_iomap_page(page); + struct iomap_page *iop = detach_page_private(page); if (!iop) return; WARN_ON_ONCE(atomic_read(&iop->read_count)); WARN_ON_ONCE(atomic_read(&iop->write_count)); - ClearPagePrivate(page); - set_page_private(page, 0); - put_page(page); kfree(iop); } @@ -554,14 +549,8 @@ iomap_migrate_page(struct address_space *mapping, struct page *newpage, if (ret != MIGRATEPAGE_SUCCESS) return ret; - if (page_has_private(page)) { - ClearPagePrivate(page); - get_page(newpage); - set_page_private(newpage, page_private(page)); - set_page_private(page, 0); - put_page(page); - SetPagePrivate(newpage); - } + if (page_has_private(page)) + attach_page_private(newpage, detach_page_private(page)); if (mode != MIGRATE_SYNC_NO_COPY) migrate_page_copy(newpage, page); From patchwork Thu May 7 21:43:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534977 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 96C3B912 for ; Thu, 7 May 2020 21:44:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7F40C20CC7 for ; Thu, 7 May 2020 21:44:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="Js03/NCa" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727824AbgEGVoq (ORCPT ); Thu, 7 May 2020 17:44:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60648 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727118AbgEGVo2 (ORCPT ); Thu, 7 May 2020 17:44:28 -0400 Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com [IPv6:2a00:1450:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FBB8C05BD09 for ; Thu, 7 May 2020 14:44:26 -0700 (PDT) Received: by mail-ej1-x644.google.com with SMTP id b20so5865519ejg.11 for ; Thu, 07 May 2020 14:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MKELhdYWYdAhzUDf2017C+zkiBNUO+dgi+kWgqsMaQo=; b=Js03/NCa0TzF0VfdeXIzvkro8wybq6NjNQGCqPdKQimeJrwvTYtam+cSE0RRwMUm3v UKO22AXxUWq/amzRnIRIwO0Z5TTODWjNj+FTzFVyBu30xNOBzSAfGNyNMKkLB+Armh8i nvTYb6dHmiGx9DTByyKmOD/rNqQhoVbdn/2HvmK0gC/pAmGrkxCsvIYzi4qm0lTF/Dof bOzxMb3YXJQhTb0g/oiCNAhJ7f03rlHoxMG7flnajSrFCu0UUpFwCNuCbH6q4YTGwB58 tjjHhZ0vmnw9ocarUaxvdVGuTgV9Gh2fHuamzzNAgyG4ZfzqwxeVh4dcPrvW+ZQdPafm 8E6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=MKELhdYWYdAhzUDf2017C+zkiBNUO+dgi+kWgqsMaQo=; b=V+jmHtfBewRYn8ebHZVvtgJgD2pWc0K2AQxWliHPn/nfA/eqHrzwkAFgguh9CkqmTQ ORUxmxxOHdthFVORw5Hc8A5jJ/JNK1K1jV/Dem9/8uRtL6Z3fTO4Ht9ryMoWOhWp5YM8 SCMKTXEMHJyNNq9Vp2V2Vuijhthr0i/MEJVsLl60PiZooxXoku5S29WW4rv6dZn8BlAH XadwETyp2KDcyiBiabUd9+mKPLGAfaBXrE2DYgHhpCU1AU4P85qAKE+m6EKIuCMs7or+ oE72276Y19/gTdTZrJBaK2NFlFPVJjt58Y7UAR8apZ+RH4gpcI+CcoXeCQ1xygMyUYhN tAug== X-Gm-Message-State: AGi0PuZwFAaM1G1Z3i+0fL0D4qkWCJ7Lhit2bdPd3MrKd3h80PAF1Wps Wl/xO1ztyOiXP/QD/4grzGNzTqh2+49XYA== X-Google-Smtp-Source: APiQypJzdpl8spMfNAAlzzO6AXeNQL/Cqjj7WRO6qZUO8sBaGbOHi6SshrS0cNwvt3L9wQtnEzsBJw== X-Received: by 2002:a17:906:6990:: with SMTP id i16mr13653114ejr.175.1588887864765; Thu, 07 May 2020 14:44:24 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:23 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Anton Altaparmakov , linux-ntfs-dev@lists.sourceforge.net Subject: [RFC PATCH V3 07/10] ntfs: replace attach_page_buffers with attach_page_private Date: Thu, 7 May 2020 23:43:57 +0200 Message-Id: <20200507214400.15785-8-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Call the new function since attach_page_buffers will be removed. Cc: Anton Altaparmakov Cc: linux-ntfs-dev@lists.sourceforge.net Signed-off-by: Guoqing Jiang --- RFC V2 -> RFC V3: no change RFC -> RFC V2 1. change the name of new function to attach_page_private. fs/ntfs/aops.c | 2 +- fs/ntfs/mft.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c index 554b744f41bf..bb0a43860ad2 100644 --- a/fs/ntfs/aops.c +++ b/fs/ntfs/aops.c @@ -1732,7 +1732,7 @@ void mark_ntfs_record_dirty(struct page *page, const unsigned int ofs) { bh = bh->b_this_page; } while (bh); tail->b_this_page = head; - attach_page_buffers(page, head); + attach_page_private(page, head); } else buffers_to_free = bh; } diff --git a/fs/ntfs/mft.c b/fs/ntfs/mft.c index 3aac5c917afe..fbb9f1bc623d 100644 --- a/fs/ntfs/mft.c +++ b/fs/ntfs/mft.c @@ -504,7 +504,7 @@ int ntfs_sync_mft_mirror(ntfs_volume *vol, const unsigned long mft_no, bh = bh->b_this_page; } while (bh); tail->b_this_page = head; - attach_page_buffers(page, head); + attach_page_private(page, head); } bh = head = page_buffers(page); BUG_ON(!bh); From patchwork Thu May 7 21:43:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534971 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0F1A7912 for ; Thu, 7 May 2020 21:44:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E9984208DB for ; Thu, 7 May 2020 21:44:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="DqSTGd8r" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727768AbgEGVo2 (ORCPT ); Thu, 7 May 2020 17:44:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727116AbgEGVo1 (ORCPT ); Thu, 7 May 2020 17:44:27 -0400 Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83529C05BD0B for ; Thu, 7 May 2020 14:44:27 -0700 (PDT) Received: by mail-ed1-x542.google.com with SMTP id y24so6893329edo.0 for ; Thu, 07 May 2020 14:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=x1k2am9O4R7Y4YHJ4Be5yH8QLb/HmP/D5mGyD5wTZwk=; b=DqSTGd8rzc46rV5EX1cpfSoxdzSXi4EvLLhtIxUZl7wvMLlAIHdW2/4M0GfdL8Fm1d 6UNkyIXF2cOpVkbG98ZwWik0/In1ULaWpxc4NZsEFId32aSQ+K+Kk/tFkHawqNT1T0aq duA15dILclSATjQAKk1C3lIVZp8bDdeQeFx+u6u1eelDaZoN8qUPdwr9FHW6O8U9x2JP 02M1BU4hAwTponPR7/EG8mYRfPmx+PClEJ+oofvj7xM07KBIqu8Bf/V/MD4qZ5ix/shu CsMPyXhtGCgZF5A5Zn3OlGyVUNNwJ6skkk/tjB4DJ9BOZ5TnVKN48ej8XsTfb6oW11z2 lijg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=x1k2am9O4R7Y4YHJ4Be5yH8QLb/HmP/D5mGyD5wTZwk=; b=dTQEyJyotcOr4wTCTtY/dvLdG+Etcr6XupQLJphFI/7NUUsGf12STzLhloyhDx4Xq7 avhq71obxQVL3YaLem0NMg7TdNmuwTQD0iUgjnfxOHpGfrnEPE3JvUFz8Ejlm3tNvcju m9milCx4YcBGNRJnI1Ptpi3diz8AI+3KHEC0bAIurEvLuLAtw7jiimMgNqrC159zeooW lGhh3ibnUgaAGfPw5FzLJvvzUm5/GvTKSbKc0aWPHo7ul4+LTG/Xn6RbZF5qpbMoeTRB iUpS42WpIx9ASiw9+k+oHKy1nBvulm0AZe58FMhaPq4eQQATqddR9OrqVEVKElih+RQB 2pWQ== X-Gm-Message-State: AGi0PuYxXVZjLIwJtVV6PSkuhmd+zabfXZkSUuU8xeGqj8NczmYep68A AaSFsBIGx0Ys+DPgVT3BsUEUBHGmT3k/Yg== X-Google-Smtp-Source: APiQypKU+QDtTzAGbt+rGx7x4k3z0gzwhpSfgQcNFLq8Sc/4CGP3DKvBCi/+fwfP+Bt5DxySqrSSLw== X-Received: by 2002:a05:6402:4a:: with SMTP id f10mr14429868edu.274.1588887866036; Thu, 07 May 2020 14:44:26 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:25 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Mike Marshall , Martin Brandenburg , devel@lists.orangefs.org Subject: [RFC PATCH V3 08/10] orangefs: use attach/detach_page_private Date: Thu, 7 May 2020 23:43:58 +0200 Message-Id: <20200507214400.15785-9-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Since the new pair function is introduced, we can call them to clean the code in orangefs. Cc: Mike Marshall Cc: Martin Brandenburg Cc: devel@lists.orangefs.org Signed-off-by: Guoqing Jiang --- RFC V2 -> RFC V3 1. rename clear_page_private to detach_page_private. RFC -> RFC V2 1. change the name of new functions to attach/clear_page_private. 2. avoid potential use-after-free as suggested by Dave Chinner. fs/orangefs/inode.c | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c index 12ae630fbed7..48f0547d4850 100644 --- a/fs/orangefs/inode.c +++ b/fs/orangefs/inode.c @@ -62,12 +62,7 @@ static int orangefs_writepage_locked(struct page *page, } else { ret = 0; } - if (wr) { - kfree(wr); - set_page_private(page, 0); - ClearPagePrivate(page); - put_page(page); - } + kfree(detach_page_private(page)); return ret; } @@ -409,9 +404,7 @@ static int orangefs_write_begin(struct file *file, wr->len = len; wr->uid = current_fsuid(); wr->gid = current_fsgid(); - SetPagePrivate(page); - set_page_private(page, (unsigned long)wr); - get_page(page); + attach_page_private(page, wr); okay: return 0; } @@ -459,18 +452,12 @@ static void orangefs_invalidatepage(struct page *page, wr = (struct orangefs_write_range *)page_private(page); if (offset == 0 && length == PAGE_SIZE) { - kfree((struct orangefs_write_range *)page_private(page)); - set_page_private(page, 0); - ClearPagePrivate(page); - put_page(page); + kfree(detach_page_private(page)); return; /* write range entirely within invalidate range (or equal) */ } else if (page_offset(page) + offset <= wr->pos && wr->pos + wr->len <= page_offset(page) + offset + length) { - kfree((struct orangefs_write_range *)page_private(page)); - set_page_private(page, 0); - ClearPagePrivate(page); - put_page(page); + kfree(detach_page_private(page)); /* XXX is this right? only caller in fs */ cancel_dirty_page(page); return; @@ -535,12 +522,7 @@ static int orangefs_releasepage(struct page *page, gfp_t foo) static void orangefs_freepage(struct page *page) { - if (PagePrivate(page)) { - kfree((struct orangefs_write_range *)page_private(page)); - set_page_private(page, 0); - ClearPagePrivate(page); - put_page(page); - } + kfree(detach_page_private(page)); } static int orangefs_launder_page(struct page *page) @@ -740,9 +722,7 @@ vm_fault_t orangefs_page_mkwrite(struct vm_fault *vmf) wr->len = PAGE_SIZE; wr->uid = current_fsuid(); wr->gid = current_fsgid(); - SetPagePrivate(page); - set_page_private(page, (unsigned long)wr); - get_page(page); + attach_page_private(page, wr); okay: file_update_time(vmf->vma->vm_file); From patchwork Thu May 7 21:43:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534979 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B684714B4 for ; Thu, 7 May 2020 21:44:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9DB99215A4 for ; Thu, 7 May 2020 21:44:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="DWWns2xv" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727783AbgEGVoq (ORCPT ); Thu, 7 May 2020 17:44:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727124AbgEGVo2 (ORCPT ); Thu, 7 May 2020 17:44:28 -0400 Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D0FDC05BD0B for ; Thu, 7 May 2020 14:44:28 -0700 (PDT) Received: by mail-ed1-x541.google.com with SMTP id d16so6739517edv.8 for ; Thu, 07 May 2020 14:44:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YYgWnESh6GA5v0OESDXoG2vIRhhETFyg3jLhszcc4vQ=; b=DWWns2xvSlGzPgxMP9SaFal+La3ugXLBILgUhzIBLx1qKHh1M2kKUcWn8htwx+14hQ /xj8yvFubU2EGz0sN8ohxRCbR/H3S/DhR38Uk5KjH2FKMN+sfvKW+BXhbtIHNZiNwbWo Kz3nyrJ3wr7svHXNNNMTyUd9Nht/APxBhFKNHxGdLK2k7fBHvmWHlifcsCm8CgWLwXg9 wtrZNFrm1eqCnjRdThbsEh9XdVQw6I+3Tzi16Enj0KuTiVTBrYd9cRYH4InFe68162kI 2Oa9/B3B9FV6TaVEIUSkFI+iIhWgfkGWXnWtE7Mh1+sJwVXl1bhxfcxl+jjvh9ErDTrO sffA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YYgWnESh6GA5v0OESDXoG2vIRhhETFyg3jLhszcc4vQ=; b=BTqiB/8vwIiukIiXVP2c2GlUPZ4KuBqUtIVi3pGpD+AdYvYM3VB+P7okkvtLhPGmY6 /188q4ygOuc8K8FUe6Qf/E5+zRvFlCcurgiEx0XTh5z0ooMQy2NCLusjgffZqqJdDsNi EmrjO5Eg+XOD2/r/5+AzCEFO5vzchSyVacuUqp1wOGSj0ZzGjewzn+Ng8AGIvHAA8nPK M59Jd9KAgs+WLQZ6NLBgBbOjA+TTi9HVAcMcs/CG/1MUj+ZJS4ZnJiFd1x6ERdA7Mr1S UEyxxRsPZm/TyVmqBgBM+yUi378mZ7XDbexyakfJ5yoCLtX08GcnMslBX13PSOCNdUlK gkyw== X-Gm-Message-State: AGi0PuYe6O3T45fpY5q78IfzWkwxr5WNieEGfJhAnOPH67E9OtFc4T93 OoXI6uZZ8zu87MLMKy67glP1UVIrzsgNTw== X-Google-Smtp-Source: APiQypLp6wHTm7EDK8AfP2PSXpgEq087c1HKWFStkQHDrDai1hobruGJfFO4+hL+A7w+Bxkg3C69lw== X-Received: by 2002:aa7:de0b:: with SMTP id h11mr14191067edv.133.1588887867072; Thu, 07 May 2020 14:44:27 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:26 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Thomas Gleixner , Sebastian Andrzej Siewior , Roman Gushchin , Andreas Dilger Subject: [RFC PATCH V3 09/10] buffer_head.h: remove attach_page_buffers Date: Thu, 7 May 2020 23:43:59 +0200 Message-Id: <20200507214400.15785-10-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org All the callers have replaced attach_page_buffers with the new function attach_page_private, so remove it. Cc: Thomas Gleixner Cc: Sebastian Andrzej Siewior Cc: Roman Gushchin Cc: Andreas Dilger Signed-off-by: Guoqing Jiang --- No change since RFC. include/linux/buffer_head.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 15b765a181b8..22fb11e2d2e0 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -272,14 +272,6 @@ void buffer_init(void); * inline definitions */ -static inline void attach_page_buffers(struct page *page, - struct buffer_head *head) -{ - get_page(page); - SetPagePrivate(page); - set_page_private(page, (unsigned long)head); -} - static inline void get_bh(struct buffer_head *bh) { atomic_inc(&bh->b_count); From patchwork Thu May 7 21:44:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoqing Jiang X-Patchwork-Id: 11534975 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 17C9E912 for ; Thu, 7 May 2020 21:44:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F2E32208E4 for ; Thu, 7 May 2020 21:44:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cloud.ionos.com header.i=@cloud.ionos.com header.b="dkeBq94O" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727789AbgEGVoc (ORCPT ); Thu, 7 May 2020 17:44:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726815AbgEGVob (ORCPT ); Thu, 7 May 2020 17:44:31 -0400 Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C49B1C05BD09 for ; Thu, 7 May 2020 14:44:29 -0700 (PDT) Received: by mail-ej1-x62b.google.com with SMTP id s9so5896492eju.1 for ; Thu, 07 May 2020 14:44:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloud.ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=p3qBa9K9MbgLEfhWUqlAktM7PPXv8tgud53nGFCyYG0=; b=dkeBq94OBb3NF7kVoAbkVx2HSO3CU2chuvwHNFGEWXV0yhNdXxm/WFjxCC0MkuBwOQ ukTQVmH3uUPgYCweOd1LQwPUAiwXSwuEHHA3DGaAzdHCj7mD6A77knGTR2DbyLLaoMmr P9/xT7V4BL2slYRI2haV4GFVTBcxtTPf1JtlHWg9BSOm7kTAMgWRJ5oRuiN5qcHOOlyX BNtTA6Fe24s8s4Oa3ZVX5xjq6Kj2yZ8P5YLEXdWpAx+lfEA+3pPnLlKxThXhKsFv5fWe zkNndfIoksb9SEG4OkxblR24QSkvS1+qVaCorcEY8RlAtYD1QYFhXRzyfiZlmBPsE72S mwbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=p3qBa9K9MbgLEfhWUqlAktM7PPXv8tgud53nGFCyYG0=; b=Mn/XDTgTUVoSCa5tZBb7D8j8cxDFNHpM60I0VjnRm4UUDLqG1DfRJX2OQy4XAWjppU yHEOEPwz1EMQAOEMkm6rwUHh57rFiPo8FtJ5/Hg3ceVcnL5LUWjGQ+P+QbtjlNY/wP+E 0PS6zL7vg85i56txxbZeXoM9qh54ROxSoC/uhINukMXa1i2fSibQI93nHQss6Nun+YBg /5YqxkQ1VnB40eYNzyRMEvp/sHTiOblTvTF4S9r2gDsaZOnvXvf4h8oD4U4n73YTG0tC 1XU9evVP44HBpw6tm4Lr+Jqai6b2/ZBOmegh1sYlFkoSftnnk3VglCV/K/T9mIut8yTx hZiQ== X-Gm-Message-State: AGi0PubYNkWjYkSGW78yZxhTxjXVSWJebHzZyyA6ssxfiNPciu/NEVMp 3t3RkGqQrSgU413b8kOzvhblEiyv/E0EfA== X-Google-Smtp-Source: APiQypIynmIlSHyf+k65C+y42oKo8PLrA1c4S7WEkoE13fKDpP+OJZwLHdb5GIwza40Y5+tp0xnxFQ== X-Received: by 2002:a17:906:a857:: with SMTP id dx23mr14469278ejb.52.1588887868069; Thu, 07 May 2020 14:44:28 -0700 (PDT) Received: from ls00508.pb.local ([2001:1438:4010:2540:a1ee:a39a:b93a:c084]) by smtp.gmail.com with ESMTPSA id k3sm613530edi.60.2020.05.07.14.44.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2020 14:44:27 -0700 (PDT) From: Guoqing Jiang To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: david@fromorbit.com, hch@infradead.org, willy@infradead.org, Guoqing Jiang , Andrew Morton , linux-mm@kvack.org Subject: [RFC PATCH V3 10/10] mm/migrate.c: call detach_page_private to cleanup code Date: Thu, 7 May 2020 23:44:00 +0200 Message-Id: <20200507214400.15785-11-guoqing.jiang@cloud.ionos.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> References: <20200507214400.15785-1-guoqing.jiang@cloud.ionos.com> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org We can cleanup code a little by call detach_page_private here. Cc: Andrew Morton Cc: linux-mm@kvack.org Signed-off-by: Guoqing Jiang --- Added since RFC V3. mm/migrate.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index 7160c1556f79..f214adfb3fa4 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -797,10 +797,7 @@ static int __buffer_migrate_page(struct address_space *mapping, if (rc != MIGRATEPAGE_SUCCESS) goto unlock_buffers; - ClearPagePrivate(page); - set_page_private(newpage, page_private(page)); - set_page_private(page, 0); - put_page(page); + set_page_private(newpage, detach_page_private(page)); get_page(newpage); bh = head;