From patchwork Mon Nov 27 14:30:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170196 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165120vqx; Mon, 27 Nov 2023 06:32:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IHVj+R0BeEb9jwkcm1f8FN+d39je1qEOtfwO4DMKJxKKIcTXp1Hw6QAwI6YyPKznp7n/Soo X-Received: by 2002:a17:902:f652:b0:1cf:6bb1:fcce with SMTP id m18-20020a170902f65200b001cf6bb1fccemr8634312plg.46.1701095575815; Mon, 27 Nov 2023 06:32:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095575; cv=none; d=google.com; s=arc-20160816; b=hFTrBesAIOKgcbTNcdA12mjTpVQLCKWwUpyDOY7jyHycF1Mat/NCmSLVLicCAS6KKa yd6Q8OE4NwGLmDNJl3dGjz5Nuf0Xh36w3678lgZQfxDUW6L190WROFd7fdxFsaBux6qv gJBP/jXEae1p608hsvJr+lmjh3ruoXYSo6beHekYSljLuYCPXDGNWoKT4RdPEKG/Y9jX js0qq802tseHqsLa3qtte9Z5R1MOfUhWTKzkwzN0H4zfaQPZBg5/ESecyNetwSomZIkT Q208fR+jWCjyHXC+JTEFUccbaR3Yik7DCpnajgyz49kzH1oEXgxnyrD2EkmjDdMtqpmo jZNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=gJ/vM3XQ9Xzn38++4z91sUsmQpG2Xapck6PJLaG5SCE=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=ggygUqMCZ+O8yFm+oOllSbpG2/CehH57BJhunGdeC7rCVrNNWzLX3ySWMLmFCR2h5j gAaHfdVJd3hMt/LVsaGjDrp/tDUP1jmEjqtGOAJVcdJ2S0d/4vC+1jm/h+LnKBXta+eu A6pLMfnUDSxRgVCekkD5VsrNcFkS0sCIqNH9YPrjfNlEcwvnuT3AheiWtfP2oLA1B46X nQm3sH4zAdgdRZlyzmznS8o10r9rXVn4uO2R76U+91LTiYCF0yQbRw9Nb9bYHFRAFCpf hkeb32cs7z7859DgZnAG6u6cpUiTQ+4WenzgkTWfi1TABfeKHJiLOTki0RkK5piPD+vw CF0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Y1GSpM2L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id b15-20020a170902d50f00b001cfd4eb4deasi1673883plg.357.2023.11.27.06.32.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Y1GSpM2L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 9F5A9812E346; Mon, 27 Nov 2023 06:32:41 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233743AbjK0Obl (ORCPT + 99 others); Mon, 27 Nov 2023 09:31:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59750 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233469AbjK0ObP (ORCPT ); Mon, 27 Nov 2023 09:31:15 -0500 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 379DC10D2; Mon, 27 Nov 2023 06:30:46 -0800 (PST) Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1cfc1512df1so8689815ad.2; Mon, 27 Nov 2023 06:30:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095445; x=1701700245; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gJ/vM3XQ9Xzn38++4z91sUsmQpG2Xapck6PJLaG5SCE=; b=Y1GSpM2LkZobFg3DhhQEurZNU5tUlLLV8CMxAIMjeVoeIuzFdwGdbSKuoArwzzksVO jL+hRd2IS7MmR0Ox1a6ZD4X5IvcMNNIrjIGN5oJlEKN0B+fqihw/mYVyi7fqnf3nPG8K KvZQi4vOErbD+EDEt9Mo+WchWfWmiVNpmoxnzebbbdGsKBDXv22ut3eqr3C/azfQ6A3t 9AMdY7yQWvbZfqldjwUF/GKveBsCjDNlTV+mpIFt7TaYovr4v9NZ0seV8PC0tt5qIFyW i3JBpc098xFkH2WDGXTPsVD7DUQXwS1r1ErCFJEoWqQ4iqf6YxholXqifrFLuAalkC0w TknQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095445; x=1701700245; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gJ/vM3XQ9Xzn38++4z91sUsmQpG2Xapck6PJLaG5SCE=; b=DujTGdlSQOv5dHl9tLQ32L8L6gTbVuMSheyrVgGPLQ84KdkgwO6KyQ0MGS0JvIsmbK xdlvNjlKwp9JfEaUxY+3ae1hI6KZZ+phX0yuTxzLWcycNKub2penN0dVB89Stt7XBaMF F+JR5t4dNG44AWthbWSHxyAS8nPuXrqhi9a0CcxfZDi71RHuQ1+Lgj21geRxe0UP31pi YhlW9iX2R2En7yd+xMvZX4YQ5DzM7dRWMKdNvkdKpUz42s+y7AEtZ/a3MBEGBQoLdfYN Ek4XwneQ9YS3HtH5GKaKFpIYzcFoUV0KqC/Craxmq1RWKfDyqb7BVT3VgQgty55OiMDE gZDg== X-Gm-Message-State: AOJu0Ywd1ilxoBb7yfvY5jofu8xZaAn1YSe2VOEzIwe9cjzV9wqg+xSg D3v0Ifmhm2ub061e3RBz7SruC8Y7PlE= X-Received: by 2002:a17:902:c144:b0:1cf:bf7b:ae07 with SMTP id 4-20020a170902c14400b001cfbf7bae07mr4772809plj.7.1701095445321; Mon, 27 Nov 2023 06:30:45 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.30.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:30:44 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 01/17] nilfs2: move page release outside of nilfs_delete_entry and nilfs_set_link Date: Mon, 27 Nov 2023 23:30:20 +0900 Message-Id: <20231127143036.2425-2-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:42 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727994346499100 X-GMAIL-MSGID: 1783727994346499100 In a few directory operations, the call to nilfs_put_page() for a page obtained using nilfs_find_entry() or nilfs_dotdot() is hidden in nilfs_set_link() and nilfs_delete_entry(), making it difficult to track page release and preventing change of its call position. By moving nilfs_put_page() out of these functions, this makes the page get/put correspondence clearer and makes it easier to swap nilfs_put_page() calls (and kunmap calls within them) when modifying multiple directory entries simultaneously in nilfs_rename(). Also, update comments for nilfs_set_link() and nilfs_delete_entry() to reflect changes in their behavior. To make nilfs_put_page() visible from namei.c, this moves its definition to nilfs.h and replaces existing equivalents to use it, but the exposure of that definition is temporary and will be removed on a later kmap -> kmap_local conversion. Signed-off-by: Ryusuke Konishi Cc: Matthew Wilcox (Oracle) Reviewed-by: Matthew Wilcox (Oracle) --- fs/nilfs2/dir.c | 11 +---------- fs/nilfs2/namei.c | 13 +++++++------ fs/nilfs2/nilfs.h | 6 ++++++ 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index de2073c47651..b9f13bdf8fba 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -64,12 +64,6 @@ static inline unsigned int nilfs_chunk_size(struct inode *inode) return inode->i_sb->s_blocksize; } -static inline void nilfs_put_page(struct page *page) -{ - kunmap(page); - put_page(page); -} - /* * Return the offset into page `page_nr' of the last valid * byte in that page, plus one. @@ -413,7 +407,6 @@ ino_t nilfs_inode_by_name(struct inode *dir, const struct qstr *qstr) return res; } -/* Releases the page */ void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, struct page *page, struct inode *inode) { @@ -428,7 +421,6 @@ void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, de->inode = cpu_to_le64(inode->i_ino); nilfs_set_de_type(de, inode); nilfs_commit_chunk(page, mapping, from, to); - nilfs_put_page(page); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); } @@ -533,7 +525,7 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) /* * nilfs_delete_entry deletes a directory entry by merging it with the - * previous entry. Page is up-to-date. Releases the page. + * previous entry. Page is up-to-date. */ int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) { @@ -569,7 +561,6 @@ int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) nilfs_commit_chunk(page, mapping, from, to); inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); out: - nilfs_put_page(page); return err; } diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c index 2a4e7f4a8102..99255694cbe9 100644 --- a/fs/nilfs2/namei.c +++ b/fs/nilfs2/namei.c @@ -280,6 +280,7 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry) set_nlink(inode, 1); } err = nilfs_delete_entry(de, page); + nilfs_put_page(page); if (err) goto out; @@ -386,6 +387,7 @@ static int nilfs_rename(struct mnt_idmap *idmap, if (!new_de) goto out_dir; nilfs_set_link(new_dir, new_de, new_page, old_inode); + nilfs_put_page(new_page); nilfs_mark_inode_dirty(new_dir); inode_set_ctime_current(new_inode); if (dir_de) @@ -409,9 +411,11 @@ static int nilfs_rename(struct mnt_idmap *idmap, inode_set_ctime_current(old_inode); nilfs_delete_entry(old_de, old_page); + nilfs_put_page(old_page); if (dir_de) { nilfs_set_link(old_inode, dir_de, dir_page, new_dir); + nilfs_put_page(dir_page); drop_nlink(old_dir); } nilfs_mark_inode_dirty(old_dir); @@ -421,13 +425,10 @@ static int nilfs_rename(struct mnt_idmap *idmap, return err; out_dir: - if (dir_de) { - kunmap(dir_page); - put_page(dir_page); - } + if (dir_de) + nilfs_put_page(dir_page); out_old: - kunmap(old_page); - put_page(old_page); + nilfs_put_page(old_page); out: nilfs_transaction_abort(old_dir->i_sb); return err; diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h index 8046490cd7fe..afd700f5dc4e 100644 --- a/fs/nilfs2/nilfs.h +++ b/fs/nilfs2/nilfs.h @@ -237,6 +237,12 @@ extern struct nilfs_dir_entry *nilfs_dotdot(struct inode *, struct page **); extern void nilfs_set_link(struct inode *, struct nilfs_dir_entry *, struct page *, struct inode *); +static inline void nilfs_put_page(struct page *page) +{ + kunmap(page); + put_page(page); +} + /* file.c */ extern int nilfs_sync_file(struct file *, loff_t, loff_t, int); From patchwork Mon Nov 27 14:30:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170198 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165194vqx; Mon, 27 Nov 2023 06:33:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IG4uqSAOKRHWdfgjfbJaCoBe98ag2zvlErOeklF6G7nJwd9VGiIxaqByyizXcJhxkMQjnRU X-Received: by 2002:a05:6808:6547:b0:3b8:5dbd:3337 with SMTP id fn7-20020a056808654700b003b85dbd3337mr10319424oib.30.1701095582058; Mon, 27 Nov 2023 06:33:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095582; cv=none; d=google.com; s=arc-20160816; b=LoT8rWcnLvP3m0JSizFmAp1bJq62DnjsWjvY4gEElkTxwRi7e5hggP25AWxIj9CU2i I3wXrb0JAkltLHBWKiDK0/9WQYTop9S5YJO7BjDTjeWugXFO9jC7xBO10JjbqumAYouX BBW6lK1I8pRf+uVI3sAAJ+5ngH+1amUayhydb/Grj1ajGoit/ordcRqlYhc1Gbp75gtS +Cy+1TxWZToFD7Cfs9rTpe2cZ7gL05xIH31fx+CmduGea6wyAmPFjchxYsqConF+08zB Jks8xpSqYW/Zx6C8MbpEsVV8FHpV6fhqnRZ98llS+JlkKCmBlUfQfnxFxGnt9kaH5Gko sovg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=79oq+dAh3gxJRpbXVK4oY+eeQB5JyiO6FF7VLXAwv3Y=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=Rf3wXPXxJQy+O2LwyBU7r5IZi7ONi5c+/6/Lh/WbVlaGNgdYgUZJLdYmcvnNM5IU1W yA8eyrUw5tCje3Z/WqwrVKXLTjaXJU9iRf4r0SOxKyIvU7ovshb6cjGBkT2+ROJVgN6R y0zQHIwBEVUUeD7k4m3TN0yQF43ImD0IWWW5I63A4HdchfTxiXKQsQ9LWT5SjAqVrTGH m75h38sztcQKbwTsHkNhXlpl2Uy4CnuJQghi/pj8Vos3ZVjVTnI7crKBklzNusoBauYk NslRpGTjXkMAsiYKDVseCg5AOqcj7cd6qnUVYmnXwEaOxpeZBtyEpVTM2u5GFcjyDuM8 DXYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=gGQfITpu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id cb11-20020a056808320b00b003b8515590basi3654120oib.307.2023.11.27.06.33.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=gGQfITpu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 1A2208090F83; Mon, 27 Nov 2023 06:32:02 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233767AbjK0Obo (ORCPT + 99 others); Mon, 27 Nov 2023 09:31:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233640AbjK0ObS (ORCPT ); Mon, 27 Nov 2023 09:31:18 -0500 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36CFB10FB; Mon, 27 Nov 2023 06:30:49 -0800 (PST) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1cfa8f7c356so16970345ad.2; Mon, 27 Nov 2023 06:30:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095448; x=1701700248; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=79oq+dAh3gxJRpbXVK4oY+eeQB5JyiO6FF7VLXAwv3Y=; b=gGQfITpu/0IEPQBSVWUfVKLM+qaUMf7s6Ux6aq8lIXab74oai3ZVJT2nUU1uXWIEB5 Xb06vD9km71cQqzGE6OU+W5cOuLfMOU/B3X81ES7bYg4rlzV45uEGqMgeE83ShUVJABL evvEsO4/+B23bdFsUCoAzNwY6EdTd7Gl9lK5uIMQOhm3EFwQRQb35dWnwp6i5ej1+5HE EOhOcW6Da4wYF2bCqsv9svv7RA/f9pChmPgm7GndIBqsrZlJnq0xkduUAdl1vWaNexQw Gcs9+m7RJDFXBCGJpNPCnXK/lcpJdzG1ZEG5EfdKS8WQTjfE7idC/LRugik2oDmgNmoP gnVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095448; x=1701700248; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=79oq+dAh3gxJRpbXVK4oY+eeQB5JyiO6FF7VLXAwv3Y=; b=R88hVyIIRcO1RKNvrabvKjN/JgFcKQgYSI7JTiWXdHlrWKJIO2ETdd+oAtaIjCBj6T QL+az+Wte0W2yxCnE6nMGs7yk3F63OVH9gTD5BXyWbdupFLSVwQCyfrSsV2XWEea2xJN D0PpMeWQUgbgWPnlWWo+2WqUZ9ecyOHhZ8vDWXdL7V2UFiFtJY4KcEYrcq58/QHNDzY8 Y/NXe2BmOkxUUmjV3flsBspdFb9Y4Yu7DZUUOHNqxJkMPwPmBtSP+YB6Cx5Yv3P6Lt9H E1FYptpkO3WvlsRTzSQ+m+8jvZ6rRytkFAljK7JhWr2QN1IE1TppmXGJ+Hi9dyOUFByr 9HjA== X-Gm-Message-State: AOJu0YyMvf/z3GneU2pKRsFlI9jBmhu/MXztXcx84yvf2b3WhcHS46q2 3Nyodr85UtK8/b8heRJIzjLhtlYsLT4= X-Received: by 2002:a17:902:f541:b0:1cf:d648:31e3 with SMTP id h1-20020a170902f54100b001cfd64831e3mr2215302plf.65.1701095448328; Mon, 27 Nov 2023 06:30:48 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.30.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:30:47 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 02/17] nilfs2: eliminate staggered calls to kunmap in nilfs_rename Date: Mon, 27 Nov 2023 23:30:21 +0900 Message-Id: <20231127143036.2425-3-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:02 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728000870818549 X-GMAIL-MSGID: 1783728000870818549 In nilfs_rename(), calls to nilfs_put_page() to release pages obtained with nilfs_find_entry() or nilfs_dotdot() are alternated in the normal path. When replacing the kernel memory mapping method from kmap to kmap_local_{page,folio}, this violates the constraint on the calling order of kunmap_local(). Swap the order of nilfs_put_page calls where the kmap sections of multiple pages overlap so that they are nested, allowing direct replacement of nilfs_put_page() -> unmap_and_put_page(). Without this reordering, that replacement will cause a kernel WARNING in kunmap_local_indexed() on architectures with high memory mapping. Signed-off-by: Ryusuke Konishi Cc: Matthew Wilcox (Oracle) Reviewed-by: Matthew Wilcox (Oracle) --- fs/nilfs2/namei.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c index 99255694cbe9..d179db8074c2 100644 --- a/fs/nilfs2/namei.c +++ b/fs/nilfs2/namei.c @@ -411,13 +411,14 @@ static int nilfs_rename(struct mnt_idmap *idmap, inode_set_ctime_current(old_inode); nilfs_delete_entry(old_de, old_page); - nilfs_put_page(old_page); if (dir_de) { nilfs_set_link(old_inode, dir_de, dir_page, new_dir); nilfs_put_page(dir_page); drop_nlink(old_dir); } + nilfs_put_page(old_page); + nilfs_mark_inode_dirty(old_dir); nilfs_mark_inode_dirty(old_inode); From patchwork Mon Nov 27 14:30:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170189 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3164329vqx; Mon, 27 Nov 2023 06:32:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IFFwaN1gT7BI5iFk4DnYr/6gDqsaancn72bgrTQ7el/o+ea5G0iIn8ttVomManOHZ/ORGUs X-Received: by 2002:a17:90b:388e:b0:285:bcae:1894 with SMTP id mu14-20020a17090b388e00b00285bcae1894mr3572657pjb.46.1701095529972; Mon, 27 Nov 2023 06:32:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095529; cv=none; d=google.com; s=arc-20160816; b=QfxOrVH0bkFkilbCPoueilmDmQ8K11zQ89hWYBX3CKxzNMghdTqXNlBrR4zjabPv4L BVkrEK3fVr4w5D4xPdhPI7Vhir36TszZMUXzScEx6mvo8H72aYRdexTm4iyYmvzlZ6f6 r2Z0TVc5QoBYL25Otr5IZ9XTLVcSeVD7e+3/Ln1KoNm8Gr4z2waxZy4ImgWBjXKcKAFj MqA6qQj1ZJVeB+t//Q3r76+yP9rx7kHlBevaQr8s7MxMk+BPwf7hVaSJmBF1i03WsRxC Krqxfczp4REX0Wi2tE3GvVE9lyMoVko+p6Is7HE9+8rp/BLlu+U1+Sp0NCWHrrV2wbck T1dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=DCM3sUYAk/tlBLIzo2SaDQBBpHgsnzA0anQsHtnDawg=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=bI+rwD4ZApGnd0zheU2mdoKBPeQCOzKPBGmscTvOunrYRJl/YCN12qRNdUE4ZRLmOn hzsZ2CrqOlHp64bWdrNVjtFd7CJObS/9syeKD+cVOSt04G3zVY7jVeEw3kZewHpULlC5 UZBVH5rOfPvySamHc6OSogG2EnlrUOS1m3Hmw/qdJij1RboF4X+VpAUwA0K1mUX3/rv4 Yh2Fi2gAIQt/H0YGtlzAqQQflrE1vxdosk7EXD/HRfpBg4tynKBjJszN4ZCaNIPXnvAn 3m4AyPyjb4rgCWdz7UeMSpSU5iOiU3vidwcYS7EPdzQ82Z4EMNQOXKebDP/cb1y0zvqk JURw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ExiDDPRo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id t2-20020a17090aba8200b00285bb015802si3389739pjr.131.2023.11.27.06.32.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ExiDDPRo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 1A1F9805DC66; Mon, 27 Nov 2023 06:32:06 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233820AbjK0Obr (ORCPT + 99 others); Mon, 27 Nov 2023 09:31:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233766AbjK0ObT (ORCPT ); Mon, 27 Nov 2023 09:31:19 -0500 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C151A1707; Mon, 27 Nov 2023 06:30:52 -0800 (PST) Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1ce627400f6so32881405ad.2; Mon, 27 Nov 2023 06:30:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095452; x=1701700252; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DCM3sUYAk/tlBLIzo2SaDQBBpHgsnzA0anQsHtnDawg=; b=ExiDDPRoA0/zQHstCPV5m9COgyMsE1YPuklgiFPgFWE6RT4+cOV8WmkswESSFX/Jce 7loF4QvMA8TxX/hqbjkLzvhXwtTSgMTefammgk9nkEC2Ylbtfk6te6J7VkU1AM8MTFWN 1TT4v/c2jtEgd3ZTA9AApwx3MQhm4nKyCRIbesLDGvYKJvmhPvV8GGMQx3+ly66WHhHs AivmTasjb/efSxd5PMdU0JdqQAbt9BdHC6RCAnUsgT7ONtoGGvL8W6X4Cn6oWlq36QIh bDSQm2nLZqJN0nB8B5ASWYYKA/j+OPEc7IhSil13V6W/x3TNGNvN8Klt82DMTEX5eHl7 TbdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095452; x=1701700252; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DCM3sUYAk/tlBLIzo2SaDQBBpHgsnzA0anQsHtnDawg=; b=TBY9/dwEE94xkf3atuZOjEVJIl583gIpXrDTOmSIgWvBytA5ZVRF5delUsQtHSkM61 kQRkixZVv3K4JQQCkB3beGPCZz/CLnVbfpHJZQuXsjfuLnwgWYgXljCxeJHzU8eTHAPi EQ9DdyrjLeQ4xIID9P0GPwJAR3al+XwD+ewc/3cOSo7DDKgdmz9YM0pLslQTzYFDOe19 oLEX1KS5wJkYhsvpE56B5ddY5FeCMKRvuzyNZM3lqcmtp3qdIBvF0JhNy7XsOo/zesgv Xhvl7Cn7aDU8y5TtwDbs2Pnd/gQOV0aha3nE65eZgpdFGnWJtpIVUs6JHieefwk8LsEH PFOA== X-Gm-Message-State: AOJu0Yyy6fOllCkc91//ALWad7qGspfWPUO1iD59uxMzuUMA3Gk5ZBjK ZTrsWWJMGX+uuBOCI1+kOGNGYQW8Ryg= X-Received: by 2002:a17:902:a589:b0:1cf:e880:cb8f with SMTP id az9-20020a170902a58900b001cfe880cb8fmr487203plb.55.1701095451896; Mon, 27 Nov 2023 06:30:51 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.30.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:30:51 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 03/17] nilfs2: Remove page_address() from nilfs_set_link Date: Mon, 27 Nov 2023 23:30:22 +0900 Message-Id: <20231127143036.2425-4-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:06 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727945997349241 X-GMAIL-MSGID: 1783727945997349241 From: "Matthew Wilcox (Oracle)" In preparation for removing kmap from directory handling, use offset_in_page() to calculate 'from'. Matches ext2. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index b9f13bdf8fba..9c0513245a3b 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -410,7 +410,7 @@ ino_t nilfs_inode_by_name(struct inode *dir, const struct qstr *qstr) void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, struct page *page, struct inode *inode) { - unsigned int from = (char *)de - (char *)page_address(page); + unsigned int from = offset_in_page(de); unsigned int to = from + nilfs_rec_len_from_disk(de->rec_len); struct address_space *mapping = page->mapping; int err; From patchwork Mon Nov 27 14:30:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170199 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165228vqx; Mon, 27 Nov 2023 06:33:04 -0800 (PST) X-Google-Smtp-Source: AGHT+IFfbLXQZUXqe7weyaCw9mTNVPpxAX44SssCFnO+lrAPEKSBqqry0RZOLVfRjw/acDTIW0qe X-Received: by 2002:a05:6830:4af:b0:6d8:29a2:9ab8 with SMTP id l15-20020a05683004af00b006d829a29ab8mr2736250otd.32.1701095584481; Mon, 27 Nov 2023 06:33:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095584; cv=none; d=google.com; s=arc-20160816; b=f9nMqIfRzINLClofZ8IgZIHvGqTnLP+RdR1SCYilbFgZupXlMwCwtSsRz2RPurDe9P F3mLtbkjVqTPoKbSgokD+X7+Fxml1hFouhLnEPYuldv7l35TmpKcjymjVWy61SqbrwPA fml7HjKWUoncF4fpioJfCA68lBEXVx6O1jqcw86jX7jmMA0hXBVYPhVTGNCkI01Wi5+Q Xr6ctnTlDpcEAbjIfr+q3LQXzyXremMr0jqJZ3tvCfdGqzlC2P/BxvWaX5/gCpCPsjYq 4JNAEmSryE/TeQSSqBUnfST6rulk9V69djbCh6ALw3cbP7wP/cSpxB/42ccnamVSBY0L LmLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=tAEplWTuwzV3S4Z2ct3K3DPtCcwmnpKgJHolez0b9mo=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=czyaN5XyVnUUaZ/PJkQgKaRZ8pn7i9zLoh3I08A/ohgesJctjvUr1QkEDzLUVrJ9iu 8Ruq9dVYGPgryA/2jwgyMjJMasbqS4IUGLlcHLhsOnpz+cQS1KPZ9giv40TOYTcvlGGs HXesVQAQaAVSpKU2I8+SelPBkAM5ZwPjt2GMbiYuw6QJiF8ffY2/oo69sZoFnwDAcLGZ RStpCnKGG/hzppF5ir47bCS0J/XsvgtrHwHYY/dNREsSyLyB+hAYQPulu925MS1LSq4C 9vY5YkE1Fmskia96lvLO9mWfM1Wes6qDCKTv/T98w1W7V+2UDQAXazNlgSCUnDjOS4uV PJxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=AkbRcCdp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id d22-20020a0568301b7600b006d81e233b31si1385043ote.78.2023.11.27.06.33.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=AkbRcCdp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 586F28075915; Mon, 27 Nov 2023 06:32:09 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233879AbjK0Obw (ORCPT + 99 others); Mon, 27 Nov 2023 09:31:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233770AbjK0ObT (ORCPT ); Mon, 27 Nov 2023 09:31:19 -0500 Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EDCAC1727; Mon, 27 Nov 2023 06:30:54 -0800 (PST) Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1cfb3ee8bc7so16408785ad.1; Mon, 27 Nov 2023 06:30:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095454; x=1701700254; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tAEplWTuwzV3S4Z2ct3K3DPtCcwmnpKgJHolez0b9mo=; b=AkbRcCdpMnJz6h1t2matzBF5QSpTK3pmu9wyG7yHu4ncsw2vz/XBy7pWyXm/b9LjUu /TEImCkSFQ07sSQgQcB1SGGsBX6sD1YK1/ayNuhDTTpYQoVPV2ygz5wYf3ShvHLPrWO7 P2BKcKjGVSBM4Noqaxe26jK9E0iP+LSsTNCAxgoxEbddjCURvvAoVkfVfqYzeQmSH8sW NI9B5m5gv5UK5GI4sCMdl+pGxQQxex3BuCViltDAMl1/wODHoAWwsnWqlI+gk9zhLJIJ 3iqpSAhAFr5QyLNo0NxIps3PkI921YzegJ8FHqOHYMPvSWFuWDu6I+Hu0fewNBX1DiDU JUKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095454; x=1701700254; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tAEplWTuwzV3S4Z2ct3K3DPtCcwmnpKgJHolez0b9mo=; b=vSocXQ96ePbLad3ztrbMe8du0CfNVCOeYfR+zGXcqCyfYX2nVJs6q6xv9bNPXYFl4s EYS3ccHjEULPYXxLneFjU+R9D+cPN0J/uelTOdekF7VSFWXcBKJEyfKjHcI7swsuH6dZ M+8Ulih3lZCWTh6Wh5Wfih1OGBmpUFhiWK9rKcb9L5SzFGfICob9f7zc7YPh1Skt/Ymc n95o9KvZ1iPr6J48kepQ4XESpuqysFFxYQ46FLaScaQitPMfANx0AmBrBC4it9Vc+kPa sRfIVu18TyXvcmTbUWJZ5DJGDEFYEKcrXKU6lQ8ZfFvgG//1gS57yFlvVMCww6csZrm0 TQuQ== X-Gm-Message-State: AOJu0YwTeAJ+RmzGL5HBbB1bMWWWtOqVtE6p5RVl7Trs5x2y814tT3gu 5H5yKeUZ3YRACP9/UxWXvUQ= X-Received: by 2002:a17:902:dac8:b0:1cd:fce2:d702 with SMTP id q8-20020a170902dac800b001cdfce2d702mr15945223plx.15.1701095454348; Mon, 27 Nov 2023 06:30:54 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.30.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:30:53 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 04/17] nilfs2: Remove page_address() from nilfs_add_link Date: Mon, 27 Nov 2023 23:30:23 +0900 Message-Id: <20231127143036.2425-5-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:09 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728003536415849 X-GMAIL-MSGID: 1783728003536415849 From: "Matthew Wilcox (Oracle)" In preparation for removing kmap from directory handling, use offset_in_page() to calculate 'from'. Matches ext2. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 9c0513245a3b..73f135290288 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -493,7 +493,7 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) return -EINVAL; got_it: - from = (char *)de - (char *)page_address(page); + from = offset_in_page(de); to = from + rec_len; err = nilfs_prepare_chunk(page, from, to); if (err) From patchwork Mon Nov 27 14:30:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170191 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3164578vqx; Mon, 27 Nov 2023 06:32:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IFlYad/CxNxkhCNyZ9iM22781XlkwR5qX035llrWCzVuMHttpZ3RTjDvT09M8crxMRqagFD X-Received: by 2002:a05:6a00:10d2:b0:6cb:8c70:4790 with SMTP id d18-20020a056a0010d200b006cb8c704790mr12487039pfu.1.1701095545685; Mon, 27 Nov 2023 06:32:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095545; cv=none; d=google.com; s=arc-20160816; b=GI28cYpNchYgrSUvOd8FbwtmV/E/mhr9ETZHSWWZoP9g0a9eR7Zx+P3Lo7ZRY4x7vx waIxBT7wXTp/LhGWhTheQS19tTQ4Esl7jO13BfltIUqql/jBdzbLFvg8zoV6XV9H3RJc BC0rDySqduXpO/jKUbiuRXuLBLZSKHDJamrWgiW9rfKz94jgvbDuRIN4V57OC4FajX1E l7MSZL2zQi/XcQHXdKa4H1YQsqV4c5GAOIZmkPidMeQ8Y8lmHTFSYwHzJriq+REs829t ZxB1TNDQmocv5BlQRyO0qkN4FYI0GFb/Qa2RgwT/qfBpRSzx07UuH72Mu46qvDn6xT4T IMFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TtusoM3dpH6zj86rZ9DcGWfb2vtJ7UeLgS5shm5pfGs=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=RKq03eyM1MpZhmJhupkUvsoBVL+S33k539QY5ICXeg7GKRPURmTM+8rDeEIVjmr4tB QW/c/ui6uNr/0NSDYBR/kHLjh2nlAdtas+quMH7i1iIEG+1LDVnGHVEtC2PhzkKM9oV6 nqxt0Zt/ipmflZQnvM1t4HgZ1LMl9+1FUm+5QZ9dhkHwVQO5ETw/6kJ/UNlOmBWeP6P7 0txVVUOsSgjtn9OZ41jJvK5ActymzkUlEgDRDenpfY5Je7etJQ/lv11N01py6Fj75sBh vowmT14H+LcEGXJdigznEpdyv1EPobKnxVulSE5T4Ep0YfbsBcaNcafUF7xLDJgL+wcI Wfhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=TpoRDYsQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id e7-20020a056a001a8700b006a68a46431bsi10198201pfv.50.2023.11.27.06.32.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=TpoRDYsQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 0041B8225089; Mon, 27 Nov 2023 06:32:13 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233647AbjK0Ob4 (ORCPT + 99 others); Mon, 27 Nov 2023 09:31:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41810 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233775AbjK0ObT (ORCPT ); Mon, 27 Nov 2023 09:31:19 -0500 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DBF710EC; Mon, 27 Nov 2023 06:30:58 -0800 (PST) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1cfc2d03b3aso8079815ad.1; Mon, 27 Nov 2023 06:30:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095457; x=1701700257; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TtusoM3dpH6zj86rZ9DcGWfb2vtJ7UeLgS5shm5pfGs=; b=TpoRDYsQk+HkejkDtsfCnnX2/Y57W4+bi3HBYG7762HYYwi7NP1TQNQlkqvWW6OS02 gMdAXtMDAY6irCSAoeIpRnNxRb98ykmlUd8do/WfqD1j2kgNavHL53mC93v8BVvALCVw WUPlHS/MQpGfA8XxATi2HVjXx/qYQ7ka87HqIy7bbENUVeDPHPCabd146GOdarrsZhOe xTlWC5S8oFxNfHO3z11KuB+WAgu49rZFgUxAlkIQj5uQZUaYQ4hEJuBUx6v1e4iXfFIW ppDwWpyaBOVXzzK2HkGzfBKZeYM/EzTgzLSFby1UWLSEOopw6UGFYGIE7VO26KlivQ1z Xikw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095457; x=1701700257; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TtusoM3dpH6zj86rZ9DcGWfb2vtJ7UeLgS5shm5pfGs=; b=qjsLhpcuZlJ+v3N0RoGnJuOMiKrsigW3H39rr98O5oncj4jxOZkNZH2SulAPd4guSw fP2EcL8DrbJHsa7UsEUjiKv/TnuO9Xa8H+LXLC9/C0i+qE0mNZr9NZU8muE2jwJstrPN jyZZMzFC3m+Qm5MYHVRmAgJfYVY88seas7qkXvgUvZKEjSrxFWo+hKLmextq8zveQEy1 5ojA9P2Qkx33Skrk69UyGN1IaY0Y0zeo4FeL0dD7dEHTyzle6DIrlGxL3FlpbwEZ/lCI /RgfR8gsHIIq0zimPSxyWY1y+NpVYjkR2QeTC/ZVooFFc6GjugtH1y80tOipGBs2f+Uq NfoA== X-Gm-Message-State: AOJu0YxtVRqCstcwWGfNRLpkbMTa6NI4gwbfnbkQeXhA2fqhqCQSCx6h dPNMZrtqsorzHC8NROHz+2D2gM6VBVE= X-Received: by 2002:a17:903:11c8:b0:1cf:5760:43f9 with SMTP id q8-20020a17090311c800b001cf576043f9mr12554020plh.64.1701095457548; Mon, 27 Nov 2023 06:30:57 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.30.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:30:56 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 05/17] nilfs2: Remove page_address() from nilfs_delete_entry Date: Mon, 27 Nov 2023 23:30:24 +0900 Message-Id: <20231127143036.2425-6-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:14 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727963035576852 X-GMAIL-MSGID: 1783727963035576852 From: "Matthew Wilcox (Oracle)" In preparation for removing kmap from directory handling, mask the directory entry pointer to discover the start address of the page. Matches ext2. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 73f135290288..385e47eda99f 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -531,7 +531,7 @@ int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) { struct address_space *mapping = page->mapping; struct inode *inode = mapping->host; - char *kaddr = page_address(page); + char *kaddr = (char *)((unsigned long)dir & PAGE_MASK); unsigned int from, to; struct nilfs_dir_entry *de, *pde = NULL; int err; @@ -551,7 +551,7 @@ int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) de = nilfs_next_entry(de); } if (pde) - from = (char *)pde - (char *)page_address(page); + from = (char *)pde - kaddr; lock_page(page); err = nilfs_prepare_chunk(page, from, to); BUG_ON(err); From patchwork Mon Nov 27 14:30:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170190 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3164507vqx; Mon, 27 Nov 2023 06:32:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IGdBD3HsI+sh4LbcUz8dWQcMPV2949JUaryxyEqRtFf6bbS1x8wz0CzOeT/dDyXpXrVd3se X-Received: by 2002:a17:903:1c3:b0:1cf:b818:68d1 with SMTP id e3-20020a17090301c300b001cfb81868d1mr8684149plh.49.1701095541387; Mon, 27 Nov 2023 06:32:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095541; cv=none; d=google.com; s=arc-20160816; b=sUq+NN/TGqeYgHXaw803hbK5tF4vap1w2/Ss3fllKjOC8mlKak/2l85guTbKI8JVNQ 507/Dl4k1d3ZymM0vuHJt48FYg7CB8OxOJn6k51qVS4p5YE6LEnwTTwIvISsklpt0LCj v4MT8ds0KRLVq1JWbbMrY54kgtqmgtIR2w/QwiGJPqDHaEI1RDbjHBU9RxhaExolrqAK FLfDOnaZ07D7zppm+WlRiInm/0VVBLhFw523rAad4Be+oI5O/K51lQZ0/QqKxbfvRnDC qIsQLdNOGOiCw9Od3oKajNFP2MkUzYKOaRgilk974jA9ai1Dyk0SA1Wc5rsAMMRYGD0e rEbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=LSD6FwTVggzrZpf2kEN+3oSDCrGK42JmxcGcmXQsxww=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=w4qJp0X9lbt9cmf9g/+wguIFJEIyoJY71KrDXSkAq1MpRGYUP4NB9vy6ayZbuntJX8 PsL5hqZ0NFoWszK+0K0Rr90awvt2njS5k04QTaSg1cPRYYgdmdwgmU6itRlYIy4yjDBW Sh56EMk1qRggqVzPVBA+eXVCcwAR122LXPyawx4gtLkzcsnvn4v8b9X21CQaGPZ4UhHM TGhuFjx5FmV0PI+Q6Z4E+bBtW7zGLeDaZ/raTh48U0bieWcdyy/kiv/FCjeF4hLlhA5s i2nF+DktIgZM82rvD3aDHSQM6vCM5k/T7ag//uPVAQ9dj81lE3bp+b8jkj/A3HB/rEUw bNXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=KLJx8Qvm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id h69-20020a638348000000b005bda018db99si9209568pge.451.2023.11.27.06.32.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=KLJx8Qvm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id C81B2809B717; Mon, 27 Nov 2023 06:32:16 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233421AbjK0OcA (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54520 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233780AbjK0ObU (ORCPT ); Mon, 27 Nov 2023 09:31:20 -0500 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B71D19AB; Mon, 27 Nov 2023 06:31:00 -0800 (PST) Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1cfa5840db3so23163715ad.2; Mon, 27 Nov 2023 06:31:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095460; x=1701700260; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LSD6FwTVggzrZpf2kEN+3oSDCrGK42JmxcGcmXQsxww=; b=KLJx8QvmCPcubfTBNhQxVX0gSf3HddAJQa6MM86PMg781f5bWHIEXWR9ya2pRWqB7+ 9oWo4d/dsLZsiM/Y3iOVhi43VNcRtpVLG+sd7jMLWj/sKiLoNF8S63NLf3KkLcXVgfMJ TnZJIiD9tSNMk8kYQ0l02SxGOnIY6PZR/IOV6ByHcz7xCOt5RetIzXkdG1WgoSEZq/FS o0EZjK2snzpAtyfxfaFEcSkUxr3ZcVhMsoZFuNtOpEmB/T8d2f1w8cg8hzgViAiA3osE RjYG6uuduTC0xu65OzT1gO8gIKaJDI7R31AAOb1RLyguuSi6b+zAX4kfgoDhXrV2Adbk jINw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095460; x=1701700260; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LSD6FwTVggzrZpf2kEN+3oSDCrGK42JmxcGcmXQsxww=; b=u80Z09Kv5SmFAuw7ITVf8WkbfcwLJOzZLudXU7t3m3dmLljAKD3OKC4zqMzRVkfwvs CQfmSz7ggwU+5nO/qrW76XY9Ay1l+eKyIWQH1dFUXFMttSYS6Q9Htdcv0QB9miCFGcwf DBT7eoV8JzFwo2dk1mIyz3l8SVH0hqLQLrQ6iklE1AsACEns0aLk+Hs1QbgKikR4k3g5 CoUNn9Yitkz7OfkZ/yT9kCWz9d394NScTXtD/8ysR+e3N1Bm75Vq/q+8CTT1ydb9PT74 HSDTYsiOtFl8hOV0AXG5yicbFnGn9fW6+IM0ZCo96Na8Sz1Ap/4/ORpgrjgHpvAMFoQK kPgQ== X-Gm-Message-State: AOJu0YwvnsaYzaTZO2tfk9QFuzKTW9YlHQh3B6G9QKofskHry9cTpaV8 P6DxrQ0N+DTwwTSZNO3rLac= X-Received: by 2002:a17:903:41ce:b0:1cf:c3fb:a982 with SMTP id u14-20020a17090341ce00b001cfc3fba982mr5966951ple.63.1701095459732; Mon, 27 Nov 2023 06:30:59 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.30.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:30:59 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 06/17] nilfs2: Return the mapped address from nilfs_get_page() Date: Mon, 27 Nov 2023 23:30:25 +0900 Message-Id: <20231127143036.2425-7-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:17 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727958728673070 X-GMAIL-MSGID: 1783727958728673070 From: "Matthew Wilcox (Oracle)" In prepartion for switching from kmap() to kmap_local(), return the kmap address from nilfs_get_page() instead of having the caller look up page_address(). [ konishi.ryusuke: fixed a missing blank line after declaration ] Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 57 +++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 385e47eda99f..45f75d4c4522 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -180,19 +180,24 @@ static bool nilfs_check_page(struct page *page) return false; } -static struct page *nilfs_get_page(struct inode *dir, unsigned long n) +static void *nilfs_get_page(struct inode *dir, unsigned long n, + struct page **pagep) { struct address_space *mapping = dir->i_mapping; struct page *page = read_mapping_page(mapping, n, NULL); + void *kaddr; - if (!IS_ERR(page)) { - kmap(page); - if (unlikely(!PageChecked(page))) { - if (!nilfs_check_page(page)) - goto fail; - } + if (IS_ERR(page)) + return page; + + kaddr = kmap(page); + if (unlikely(!PageChecked(page))) { + if (!nilfs_check_page(page)) + goto fail; } - return page; + + *pagep = page; + return kaddr; fail: nilfs_put_page(page); @@ -269,14 +274,14 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx) for ( ; n < npages; n++, offset = 0) { char *kaddr, *limit; struct nilfs_dir_entry *de; - struct page *page = nilfs_get_page(inode, n); + struct page *page; - if (IS_ERR(page)) { + kaddr = nilfs_get_page(inode, n, &page); + if (IS_ERR(kaddr)) { nilfs_error(sb, "bad page in #%lu", inode->i_ino); ctx->pos += PAGE_SIZE - offset; return -EIO; } - kaddr = page_address(page); de = (struct nilfs_dir_entry *)(kaddr + offset); limit = kaddr + nilfs_last_byte(inode, n) - NILFS_DIR_REC_LEN(1); @@ -339,11 +344,9 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, start = 0; n = start; do { - char *kaddr; + char *kaddr = nilfs_get_page(dir, n, &page); - page = nilfs_get_page(dir, n); - if (!IS_ERR(page)) { - kaddr = page_address(page); + if (!IS_ERR(kaddr)) { de = (struct nilfs_dir_entry *)kaddr; kaddr += nilfs_last_byte(dir, n) - reclen; while ((char *) de <= kaddr) { @@ -381,15 +384,11 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct page **p) { - struct page *page = nilfs_get_page(dir, 0); - struct nilfs_dir_entry *de = NULL; + struct nilfs_dir_entry *de = nilfs_get_page(dir, 0, p); - if (!IS_ERR(page)) { - de = nilfs_next_entry( - (struct nilfs_dir_entry *)page_address(page)); - *p = page; - } - return de; + if (IS_ERR(de)) + return NULL; + return nilfs_next_entry(de); } ino_t nilfs_inode_by_name(struct inode *dir, const struct qstr *qstr) @@ -451,12 +450,11 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) for (n = 0; n <= npages; n++) { char *dir_end; - page = nilfs_get_page(dir, n); - err = PTR_ERR(page); - if (IS_ERR(page)) + kaddr = nilfs_get_page(dir, n, &page); + err = PTR_ERR(kaddr); + if (IS_ERR(kaddr)) goto out; lock_page(page); - kaddr = page_address(page); dir_end = kaddr + nilfs_last_byte(dir, n); de = (struct nilfs_dir_entry *)kaddr; kaddr += PAGE_SIZE - reclen; @@ -618,11 +616,10 @@ int nilfs_empty_dir(struct inode *inode) char *kaddr; struct nilfs_dir_entry *de; - page = nilfs_get_page(inode, i); - if (IS_ERR(page)) + kaddr = nilfs_get_page(inode, i, &page); + if (IS_ERR(kaddr)) continue; - kaddr = page_address(page); de = (struct nilfs_dir_entry *)kaddr; kaddr += nilfs_last_byte(inode, i) - NILFS_DIR_REC_LEN(1); From patchwork Mon Nov 27 14:30:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170192 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3164680vqx; Mon, 27 Nov 2023 06:32:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IHkj+b8AmMmt2fF9syNCv3fEE13RBogX29VUCH9SCWyQilcYKHxCIeAMpyUURG8/pVyf3r/ X-Received: by 2002:a05:6a20:12c6:b0:18c:42ab:fced with SMTP id v6-20020a056a2012c600b0018c42abfcedmr8814319pzg.47.1701095551528; Mon, 27 Nov 2023 06:32:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095551; cv=none; d=google.com; s=arc-20160816; b=to30mn/bHVI8klDFbL82t6Js5mBcQ+1OQ+hB9HpPTV5UzSec9YYQzIFXocYX4dwh5l xXyEihUHI3UEGmWFf8bUSufvYl/o/4Ti81OdqwWdsGy2gPCP2s8E3lx3qVRQ9zoFK4Ts a8cxvuWebGjnzgPmOYM//vvNynpuzj+46AIk4xph6J0rUr4GnQMm1FYS6XpwZYK2E1Ak TVqlfSI7q4TMh4HwmQ/FkO2KAyYLDGVORd8ngZBEwGT3mpX6tGTsNInK0qf4sKJIDGsW Yalb84Udy24LFxQjW5m4gT/9C7joUFInac7gz0GRsqW+8KGqp2W/nxz5jxDttQS+C7KX lP6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=/d7tcqdMYU+NIu4RxF41sEaUndQSw2DoYo4hopYEA8w=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=E5Kj3ngS9BFvN0LRgvtUSGmsSyqS3jncgpKTmZZft/IDrN2Gq8GbCr0WO2zjuFH2m7 IRyEw6g5/Ii2kcnZjSL13MpVjZJ6jAz8tswYPNGyrEeUiIc7Xeia9c8lH4DFdqhu5Sz6 ucxyWnUDRmFt5RfbP2wragFsIbccrWfudsBasTyEAT0M2+E9BujYxpZzawX8bTQDqAB+ gp+l1Ny+q+qWGk7IwmcfeCix/a1BQ0X3WSUKBFKjhyAkEyHpFCuRRVwlWAHrBjZ2jIxb HFYMzt1F0r2yoei+lFAQiQQ0UR8x4KYQZrjQAZ/UmFml8X8LJXSc+TIu+N1qlLndVEkW Rh0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Lw9jDzfc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id z37-20020a631925000000b005be0ff4f8cdsi9447438pgl.288.2023.11.27.06.32.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Lw9jDzfc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 6BE9780952EA; Mon, 27 Nov 2023 06:32:27 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233906AbjK0OcD (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233783AbjK0ObU (ORCPT ); Mon, 27 Nov 2023 09:31:20 -0500 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F56BD4E; Mon, 27 Nov 2023 06:31:02 -0800 (PST) Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1cfb3ee8bc7so16410645ad.1; Mon, 27 Nov 2023 06:31:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095462; x=1701700262; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/d7tcqdMYU+NIu4RxF41sEaUndQSw2DoYo4hopYEA8w=; b=Lw9jDzfcO5WwCkgN8ONaCbNWVhsbAvekvVKZcIjQoUiE9FfYcOONuKZY056OKpW3v7 IENEfEnMsccKUatjG3AVzMoLcf4DuLB+dGl5jmehqCEdksCsaxdC86yqCUuJtVrqxxU0 XpyPbkEDI9/ouSGWUoVd1IRIMONx8ym1OAOfErcPddirgQLUKXinbxiTyHDHpByCJ4MD V949yjyvlAoy4rflSebQSjPAep3aOq6MyE03ayPQpvxFFTLNu2aldc8Vfs76velUn5X8 ll77DRrNuaOROQkK70zeKV7l+6gcSBhvzy2b/BHDg5rnAFd54+ZYHt7lsmAgzReMHlX+ +Ymw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095462; x=1701700262; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/d7tcqdMYU+NIu4RxF41sEaUndQSw2DoYo4hopYEA8w=; b=N6//HMVubi3AMG7UxR1mnew+a0glSA+9biatiE6HHlWfEf/yRV7N0sOHmMaK9w8wx4 VHApIwVcMl+LbWtmcctWOp5U7razjWh38uwj7180upve70D6VOzfovBHlmkKSoETsSZv PkMWFsAT992bRkIA1LigDEKwr6JLcTMtABQspdtvs1boKZLkOYnKeJKEdwocwpNG7Cps U9eo0LrdKIQsD4Y47rqHA/1dqHvNl8iivEyM9r/4tzfCen7E1hQbLo0X3Ik8T0xfyaiX nSZFG8J0MzmjN39Pdh5LDyzcV8oG7DQ2oX9SOUgPxBqWlq2/Ece2rYE+NSr7Gn6+7H7W AKKg== X-Gm-Message-State: AOJu0Yzvd2iG2yFgDesm7pvsaV+im4GL66xddB20e0PvPElEyd8RYX6/ MKobZD7Yf6rYYLmv4v+C9z8= X-Received: by 2002:a17:902:b282:b0:1cf:b190:ea09 with SMTP id u2-20020a170902b28200b001cfb190ea09mr9899906plr.42.1701095461923; Mon, 27 Nov 2023 06:31:01 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:01 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 07/17] nilfs2: Pass the mapped address to nilfs_check_page() Date: Mon, 27 Nov 2023 23:30:26 +0900 Message-Id: <20231127143036.2425-8-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:27 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727969428806835 X-GMAIL-MSGID: 1783727969428806835 From: "Matthew Wilcox (Oracle)" Remove another use of page_address() as part of preparing for the kmap to kmap_local transition. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 45f75d4c4522..01900e84bddf 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -107,12 +107,11 @@ static void nilfs_commit_chunk(struct page *page, unlock_page(page); } -static bool nilfs_check_page(struct page *page) +static bool nilfs_check_page(struct page *page, char *kaddr) { struct inode *dir = page->mapping->host; struct super_block *sb = dir->i_sb; unsigned int chunk_size = nilfs_chunk_size(dir); - char *kaddr = page_address(page); unsigned int offs, rec_len; unsigned int limit = PAGE_SIZE; struct nilfs_dir_entry *p; @@ -192,7 +191,7 @@ static void *nilfs_get_page(struct inode *dir, unsigned long n, kaddr = kmap(page); if (unlikely(!PageChecked(page))) { - if (!nilfs_check_page(page)) + if (!nilfs_check_page(page, kaddr)) goto fail; } From patchwork Mon Nov 27 14:30:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170195 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165018vqx; Mon, 27 Nov 2023 06:32:50 -0800 (PST) X-Google-Smtp-Source: AGHT+IFGGJm2rxQQJgTMSt+c3Wb/md9o3TUDrsTNL8ydHTODef31Uc5GjK6VCVnJesp78jZQG1zs X-Received: by 2002:a05:6870:8585:b0:1e9:9742:7dfd with SMTP id f5-20020a056870858500b001e997427dfdmr14475355oal.31.1701095570166; Mon, 27 Nov 2023 06:32:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095570; cv=none; d=google.com; s=arc-20160816; b=I/jblbHPRhvOnHJ/R2IGuM1qLP5trM1GBz286C+uHEkOOX5gjZrw1c04JSYIKp1/vn vGpgoQvO2Ti1brxUL7dDmYbcC9iss6rOQp2rQ+pObocMOIAkIxd0nWMdq6HyMofrObC8 bB46didQusw93KCfK+Wf/EVMsWPhFOZDyAYwEp/78ucET0BUpksI9BvuXjTolWySnTab Zs3i0sqagMxX28i6XAHJ2KzedEunQEu2mgTsyAmaT6Q8TPtvlogxSUzLU6/zrqnb0hOm XnwaymXF5/uRdP8DbJX2JMhLw1abVil02GG+vR0UFWjHhlQUGkacCTgNaShoStOyHsQU E58Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fmlHMlCcVNl+9QQ+HEZAWjQ4Dk/nWbrv44XxJPOCOUs=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=njKPmGaXGE6uDjn5UInz+N2Yg0GjFhR9KBroFqMuHqlL6o32LrUAMTIG7QNEfx3uQA FvG9EBVSOlujZ/0V0CpFM5AXfuGtRp6QjV8KJL4JFBdwmLiqKi5r0bnHYbze+DlDPzGd 366iiSJSyHNGW3m3iPx94mpgkJcGWyippzT+DgannR1GSNxLjxwiHVIJe18ZFoHchMkp Iudt8+eeKo2s8fbbsAHLv6WpUCI/X/3JlD1yOA/Yc/q1/NYSJsdQq91JZoPGmFiDVXUa t8tp/13mw+b3MllIlNwEYY+3ZQOLlq0eDnVmjMY2vmsQAc5+s/lU32iaYluNwruaZaow Frxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=H9sYfuiU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id c14-20020a9d480e000000b006d8209036aesi1186919otf.275.2023.11.27.06.32.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=H9sYfuiU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id CBA8980707E3; Mon, 27 Nov 2023 06:32:45 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233926AbjK0OcV (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233787AbjK0ObV (ORCPT ); Mon, 27 Nov 2023 09:31:21 -0500 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3758B19B1; Mon, 27 Nov 2023 06:31:06 -0800 (PST) Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1ce627400f6so32884815ad.2; Mon, 27 Nov 2023 06:31:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095465; x=1701700265; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fmlHMlCcVNl+9QQ+HEZAWjQ4Dk/nWbrv44XxJPOCOUs=; b=H9sYfuiUkCJajY1vgdV0dnhNlCGa2WbNjtM11m7CoGDv16DRzn/2u+7U/9ueD4j5Cz Dwgc9KEap7Pkx2T7vB6db/7z4DABRH56gEz1dLZE3Ptnlo0oeO0yyVednFz89+FLV4HM H4U4tRCIP+4r6ie2u6PqP/Y0tLELo7Tt7xRDnodyYkYTELAyOUf2fx/GRYL6VVlAGPRw 5khczgHmj6y/fgBgX/XU+qcv4Azo4VnqgerdbdkUzHwLU22aZDl2veEs0kBreHgN1E1i /yXxm9HFgcguGUQeM8Ch6K1M3SK63xumqDw7OPgx6OAj0hUUyFDWmVkd3qH857fMEzKv EUBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095465; x=1701700265; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fmlHMlCcVNl+9QQ+HEZAWjQ4Dk/nWbrv44XxJPOCOUs=; b=okN9sbmf4qS92ZQ93Lj3GeuApsM2ROPUVYtMy1hvv1iCqqqomgY5SGq4qd8ttGzWRu ANuRCnM9HEcxnR2rrV2e2IFWZXGGHK30FbQBPXF/+pR0CmqDkTbpiMlGvgisKVDlAgc+ 5E98/wGF0pM9PTm/LghCAEcnMro/8+uTAxFI1L9kb1dTlWbmiyyVKJcUQ9SQZVeQnsvk ptN3CldN3we0r3X+6Bf6+8MVVUnxflekyyzxwpyBuHU7yHQ4msQVF/PdI23DYFycs4fm 5M9Kwlyxe/BvgXpwOE8X0ytMyB1dWsZoOBr+paipKBqXMyPOd7N3M3df7MEA+S+TGoFx 4rdA== X-Gm-Message-State: AOJu0YzgtcP/pB/l18u6RkvQDXXR+yHBCgihA1JgFDz07Zs/KXEDyoVL hxWNM79vUevNUn0tfjIRF5d2C6cAaeo= X-Received: by 2002:a17:903:41c6:b0:1cf:c2ad:7f43 with SMTP id u6-20020a17090341c600b001cfc2ad7f43mr4877366ple.23.1701095465169; Mon, 27 Nov 2023 06:31:05 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:04 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 08/17] nilfs2: Switch to kmap_local for directory handling Date: Mon, 27 Nov 2023 23:30:27 +0900 Message-Id: <20231127143036.2425-9-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:46 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727988553256186 X-GMAIL-MSGID: 1783727988553256186 From: "Matthew Wilcox (Oracle)" Match ext2 by using kmap_local() instead of kmap(). This is more efficient. Also use unmap_and_put_page() instead of duplicating it as a nilfs function. [ konishi.ryusuke: followed the change of page release helper call sites ] Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 27 +++++++++++++-------------- fs/nilfs2/namei.c | 12 ++++++------ fs/nilfs2/nilfs.h | 6 ------ 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 01900e84bddf..89e8a248e571 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -189,7 +189,7 @@ static void *nilfs_get_page(struct inode *dir, unsigned long n, if (IS_ERR(page)) return page; - kaddr = kmap(page); + kaddr = kmap_local_page(page); if (unlikely(!PageChecked(page))) { if (!nilfs_check_page(page, kaddr)) goto fail; @@ -199,7 +199,7 @@ static void *nilfs_get_page(struct inode *dir, unsigned long n, return kaddr; fail: - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); return ERR_PTR(-EIO); } @@ -287,7 +287,7 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx) for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) { if (de->rec_len == 0) { nilfs_error(sb, "zero-length directory entry"); - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); return -EIO; } if (de->inode) { @@ -300,13 +300,13 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx) if (!dir_emit(ctx, de->name, de->name_len, le64_to_cpu(de->inode), t)) { - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); return 0; } } ctx->pos += nilfs_rec_len_from_disk(de->rec_len); } - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); } return 0; } @@ -352,14 +352,14 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, if (de->rec_len == 0) { nilfs_error(dir->i_sb, "zero-length directory entry"); - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); goto out; } if (nilfs_match(namelen, name, de)) goto found; de = nilfs_next_entry(de); } - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); } if (++n >= npages) n = 0; @@ -399,8 +399,7 @@ ino_t nilfs_inode_by_name(struct inode *dir, const struct qstr *qstr) de = nilfs_find_entry(dir, qstr, &page); if (de) { res = le64_to_cpu(de->inode); - kunmap(page); - put_page(page); + unmap_and_put_page(page, de); } return res; } @@ -484,7 +483,7 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) de = (struct nilfs_dir_entry *)((char *)de + rec_len); } unlock_page(page); - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); } BUG(); return -EINVAL; @@ -512,7 +511,7 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) nilfs_mark_inode_dirty(dir); /* OFFSET_CACHE */ out_put: - nilfs_put_page(page); + unmap_and_put_page(page, de); out: return err; out_unlock: @@ -609,10 +608,10 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent) int nilfs_empty_dir(struct inode *inode) { struct page *page = NULL; + char *kaddr; unsigned long i, npages = dir_pages(inode); for (i = 0; i < npages; i++) { - char *kaddr; struct nilfs_dir_entry *de; kaddr = nilfs_get_page(inode, i, &page); @@ -644,12 +643,12 @@ int nilfs_empty_dir(struct inode *inode) } de = nilfs_next_entry(de); } - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); } return 1; not_empty: - nilfs_put_page(page); + unmap_and_put_page(page, kaddr); return 0; } diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c index d179db8074c2..c08b1bf9fa7b 100644 --- a/fs/nilfs2/namei.c +++ b/fs/nilfs2/namei.c @@ -280,7 +280,7 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry) set_nlink(inode, 1); } err = nilfs_delete_entry(de, page); - nilfs_put_page(page); + unmap_and_put_page(page, de); if (err) goto out; @@ -387,7 +387,7 @@ static int nilfs_rename(struct mnt_idmap *idmap, if (!new_de) goto out_dir; nilfs_set_link(new_dir, new_de, new_page, old_inode); - nilfs_put_page(new_page); + unmap_and_put_page(new_page, new_de); nilfs_mark_inode_dirty(new_dir); inode_set_ctime_current(new_inode); if (dir_de) @@ -414,10 +414,10 @@ static int nilfs_rename(struct mnt_idmap *idmap, if (dir_de) { nilfs_set_link(old_inode, dir_de, dir_page, new_dir); - nilfs_put_page(dir_page); + unmap_and_put_page(dir_page, dir_de); drop_nlink(old_dir); } - nilfs_put_page(old_page); + unmap_and_put_page(old_page, old_de); nilfs_mark_inode_dirty(old_dir); nilfs_mark_inode_dirty(old_inode); @@ -427,9 +427,9 @@ static int nilfs_rename(struct mnt_idmap *idmap, out_dir: if (dir_de) - nilfs_put_page(dir_page); + unmap_and_put_page(dir_page, dir_de); out_old: - nilfs_put_page(old_page); + unmap_and_put_page(old_page, old_de); out: nilfs_transaction_abort(old_dir->i_sb); return err; diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h index afd700f5dc4e..8046490cd7fe 100644 --- a/fs/nilfs2/nilfs.h +++ b/fs/nilfs2/nilfs.h @@ -237,12 +237,6 @@ extern struct nilfs_dir_entry *nilfs_dotdot(struct inode *, struct page **); extern void nilfs_set_link(struct inode *, struct nilfs_dir_entry *, struct page *, struct inode *); -static inline void nilfs_put_page(struct page *page) -{ - kunmap(page); - put_page(page); -} - /* file.c */ extern int nilfs_sync_file(struct file *, loff_t, loff_t, int); From patchwork Mon Nov 27 14:30:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170194 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3164850vqx; Mon, 27 Nov 2023 06:32:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IFhiHOkz1dWM0xTBFDCYbObXqIi+PD/m3mcvpaWIqDQPqL5sC1n5o+fv8dp2m4nulNSZ9z8 X-Received: by 2002:a05:6870:65a2:b0:1fa:2ff3:7e07 with SMTP id fp34-20020a05687065a200b001fa2ff37e07mr8105156oab.53.1701095555822; Mon, 27 Nov 2023 06:32:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095555; cv=none; d=google.com; s=arc-20160816; b=1EXGqD7HfSCdNlW4N+c8pNwuEkHmU+R0m8O3WmPBpEMTpM5PvOKMEe1Of32DIhnEnJ yoBMzu5rCBd+1dmE22ohGqNPOY0+xbe7VVR50iF30heITYVjInK9pqneXr/94uz3Yl+h i3cI2QwtWxAliEX3xsWOYxbUOcmZUEApzev3cUVVLzrSy0LibvRgeFDLSoR78vivbWOL EH+8hnq1gNuNinAzpvPI8/RJxhApSmAQCJKzju/1NOO20E9rt8s5rX1PVAUFub1L6JHS oOmzuCWNWbZ/iNqkf2WrHsbotbcK9NEqSf9E2IQqL6dlUfsMPHvFIj0abDqvRcC9we+a K11g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TBt5qqEXcIxLlVq5mn6Mu1pF2TRKVo2Ss4zaqApVgBQ=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=cNeluIXi/E5Sc0vz6MQhoWYA32t7Ni306zRf1TZcWifGS5LlLgc7y3fknKbTISaJkZ JZwx1FtojuXVRmn08lsH8ZC8L2zLqCgPos0DnT4qgrSbVFMdedmDIpOY5jSeNxPvoss9 5vSDUYGL3JPM5yQvKOZVmqW0sBYqrbcBKr2P25YKqc1x/Jpp85EqdR2JMlFtMfQnQa7F i2bK0tTmXG+YCikUG04pr19l9Fc7c0qcJohV2ADeSDBroOLvQVcW/Ew6z7dzSJYdmkgH GWDgL6yOa9jJJLzbMpxs+qcxYTdhy9rjaHbnGENmUpuxg8v1JgMUR6plk0qye5rXduKb nofg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=YtOsSu6w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id k8-20020a056870f10800b001ccfc1ea837si3852911oac.276.2023.11.27.06.32.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=YtOsSu6w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 1C5F3809B713; Mon, 27 Nov 2023 06:32:30 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233914AbjK0OcG (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233788AbjK0ObV (ORCPT ); Mon, 27 Nov 2023 09:31:21 -0500 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C399B136; Mon, 27 Nov 2023 06:31:09 -0800 (PST) Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1cfb30ce241so17250435ad.0; Mon, 27 Nov 2023 06:31:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095469; x=1701700269; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TBt5qqEXcIxLlVq5mn6Mu1pF2TRKVo2Ss4zaqApVgBQ=; b=YtOsSu6w/+/1n8ZYa7O2o087Suja++niiFuL1c8/2I3TtgIDj9fy2GiINUA3+5SCW6 tWc/NgxXmgh6g4iMLvpAtDLU153BjMLnqyFkSNVIEQjcVsAY9lYZGO1Xrg99U5ZJyWPX 1ktI3EjUd5M/d8blAYicuwAE0FBMFRjt3VTK945cKP5qM0iZSBohy76l7QNI3B+hnSi1 NTJqz3q29uaEXy0eZf3JfpHedOHB4CJPaEJU1g0rlFi2VJ6TA2gkME0tjpN8TYiAzdmO x/VkQgz1zzlgtDfwWRmSptsEta2wFBBckSZUW0cSAfuoDsnVugNS6vrjXTDQKyo9Dkst rWrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095469; x=1701700269; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TBt5qqEXcIxLlVq5mn6Mu1pF2TRKVo2Ss4zaqApVgBQ=; b=jdB8aP3athxq9eZ48ce655Y/WZMKFuLGOKIqIHLZWfJuotHsjPE1SOIQG7fifGk+bT BaTo5OG8fdhmkkc2knFvc/YCoE/XQFjVYvSv9f429Cq59Oa71eEybHoJoXkAYqUUf1Zm QmuICddnNJEiAmIaY9lwpT6UZOKmC8Hk0zbaqc5O/OhM8qoCkat1zvug4TTqhtfzobHG SOaObdwP4pl2X3XTknZuky5MO1cWTJzndIzC8jDysdLkzhefFopog01Yl8HG1kMY5J/u KSWkzeBpKTCcjfpao9dRp1QJ7t/kBwtDHPYq+P021/iC9z1ZSOVLoJS6VM/z5Q4OTZXM 2j3g== X-Gm-Message-State: AOJu0Yw2c4tMMUhaqRS/7b2NI1sN3QFFy2HeRbqUtj9hbYFZz59KXiIb ZvjCL6F+QLrvwNOpEztRYSg= X-Received: by 2002:a17:903:120b:b0:1cc:bf63:929 with SMTP id l11-20020a170903120b00b001ccbf630929mr15110401plh.64.1701095469174; Mon, 27 Nov 2023 06:31:09 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:08 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 09/17] nilfs2: Add nilfs_get_folio() Date: Mon, 27 Nov 2023 23:30:28 +0900 Message-Id: <20231127143036.2425-10-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:30 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727973522838110 X-GMAIL-MSGID: 1783727973522838110 From: "Matthew Wilcox (Oracle)" Convert nilfs_get_page() to be a wrapper. Also convert nilfs_check_page() to nilfs_check_folio(). Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 53 +++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 89e8a248e571..5c9ca3f0d7f4 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -107,18 +107,18 @@ static void nilfs_commit_chunk(struct page *page, unlock_page(page); } -static bool nilfs_check_page(struct page *page, char *kaddr) +static bool nilfs_check_folio(struct folio *folio, char *kaddr) { - struct inode *dir = page->mapping->host; + struct inode *dir = folio->mapping->host; struct super_block *sb = dir->i_sb; unsigned int chunk_size = nilfs_chunk_size(dir); - unsigned int offs, rec_len; - unsigned int limit = PAGE_SIZE; + size_t offs, rec_len; + size_t limit = folio_size(folio); struct nilfs_dir_entry *p; char *error; - if ((dir->i_size >> PAGE_SHIFT) == page->index) { - limit = dir->i_size & ~PAGE_MASK; + if (dir->i_size < folio_pos(folio) + limit) { + limit = dir->i_size - folio_pos(folio); if (limit & (chunk_size - 1)) goto Ebadsize; if (!limit) @@ -140,7 +140,7 @@ static bool nilfs_check_page(struct page *page, char *kaddr) if (offs != limit) goto Eend; out: - SetPageChecked(page); + folio_set_checked(folio); return true; /* Too bad, we had an error */ @@ -163,8 +163,8 @@ static bool nilfs_check_page(struct page *page, char *kaddr) error = "directory entry across blocks"; bad_entry: nilfs_error(sb, - "bad entry in directory #%lu: %s - offset=%lu, inode=%lu, rec_len=%d, name_len=%d", - dir->i_ino, error, (page->index << PAGE_SHIFT) + offs, + "bad entry in directory #%lu: %s - offset=%lu, inode=%lu, rec_len=%zd, name_len=%d", + dir->i_ino, error, (folio->index << PAGE_SHIFT) + offs, (unsigned long)le64_to_cpu(p->inode), rec_len, p->name_len); goto fail; @@ -172,37 +172,48 @@ static bool nilfs_check_page(struct page *page, char *kaddr) p = (struct nilfs_dir_entry *)(kaddr + offs); nilfs_error(sb, "entry in directory #%lu spans the page boundary offset=%lu, inode=%lu", - dir->i_ino, (page->index << PAGE_SHIFT) + offs, + dir->i_ino, (folio->index << PAGE_SHIFT) + offs, (unsigned long)le64_to_cpu(p->inode)); fail: - SetPageError(page); + folio_set_error(folio); return false; } -static void *nilfs_get_page(struct inode *dir, unsigned long n, - struct page **pagep) +static void *nilfs_get_folio(struct inode *dir, unsigned long n, + struct folio **foliop) { struct address_space *mapping = dir->i_mapping; - struct page *page = read_mapping_page(mapping, n, NULL); + struct folio *folio = read_mapping_folio(mapping, n, NULL); void *kaddr; - if (IS_ERR(page)) - return page; + if (IS_ERR(folio)) + return folio; - kaddr = kmap_local_page(page); - if (unlikely(!PageChecked(page))) { - if (!nilfs_check_page(page, kaddr)) + kaddr = kmap_local_folio(folio, 0); + if (unlikely(!folio_test_checked(folio))) { + if (!nilfs_check_folio(folio, kaddr)) goto fail; } - *pagep = page; + *foliop = folio; return kaddr; fail: - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); return ERR_PTR(-EIO); } +static void *nilfs_get_page(struct inode *dir, unsigned long n, + struct page **pagep) +{ + struct folio *folio; + void *kaddr = nilfs_get_folio(dir, n, &folio); + + if (!IS_ERR(kaddr)) + *pagep = &folio->page; + return kaddr; +} + /* * NOTE! unlike strncmp, nilfs_match returns 1 for success, 0 for failure. * From patchwork Mon Nov 27 14:30:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170193 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3164826vqx; Mon, 27 Nov 2023 06:32:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IFRkcBR/cD2O1CW00m70PaMkd0qjqj2BvOj7w9fbwaHbVz84LzYg7VP3xmNYJH+naJZ5P3c X-Received: by 2002:a05:6a00:1401:b0:6b2:7a88:7128 with SMTP id l1-20020a056a00140100b006b27a887128mr10848467pfu.22.1701095559184; Mon, 27 Nov 2023 06:32:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095559; cv=none; d=google.com; s=arc-20160816; b=xoFteLuDtU2BTbexHbMgfAZiSXSTyd4OaBf69LJLeRKdpdNdMRHgL79y2+9+IN0QTY BAO4Fbc9DeRiw04Fvi4d30onJdD2egCkOfsoCnhHpiaJyNc9QIJW2XxDGESPYGdsJFFd Q4RPXaDVsKySSTd+TLxDUJrHn5JYWFCLzEtUfFnL8WYl4s7AAotRD535nIP625U77vbH DclQjDM5eUxG+N1/RE2VVZdsMLvOKR0hlo4sFrifYKgQifkML+G9pBqMe+vJgcgdczmy 3QLXBLBJ5EGdc0em69Yo6+YIiuZhyXQ2kP7yhVpA30FGYZRNuYrctn86mhdV2D2JmHMU ufaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fZIiUDywASZ5qLtxZqnaVnT8sxb13W9YOdsItG5ysDI=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=sPBpkgjEZX27HXJeOtn8+i0PEFMAObPVE2122ZuyrzTJ+p/G2/t03ynRFSAjTeUuTr OIfniMcZbIIkz/6YB4cNn9Yy5T0NK01IUU9y0/wjhO+G7N+PSX0tKWDCLonWTMgBzKh/ LIdRJR6dQiX9DTkM7Ng3UQWqWkXmKNyUbY0kQPyy54/1PbJknPXvdT0HiWMIqQn4YTlI K+a5hiMVRSb/sBw3WGsN7RuOvBu8TZJm2QqI2NTnPprO1ay1qZqmSaZ6oB5AAGEtV4sx B4fUvkbOLOVxdU2LcAXE3WpnNric2cweLux5KGioyB3RMNs0xUvzUxc1ASiLAdz09PxC Db+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="ddpL/kve"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id d16-20020a056a0010d000b006cbd3ab255bsi10222937pfu.61.2023.11.27.06.32.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="ddpL/kve"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 69BB6809B720; Mon, 27 Nov 2023 06:32:34 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233919AbjK0OcJ (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41966 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233793AbjK0ObV (ORCPT ); Mon, 27 Nov 2023 09:31:21 -0500 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E461010F6; Mon, 27 Nov 2023 06:31:11 -0800 (PST) Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-1cc9b626a96so30352245ad.2; Mon, 27 Nov 2023 06:31:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095471; x=1701700271; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fZIiUDywASZ5qLtxZqnaVnT8sxb13W9YOdsItG5ysDI=; b=ddpL/kveJht9XsO36Dpv4ydrFVF2gHZn0max1hT/qbuwk/6k/w9296jrSQLS4TzBLo jYR5Q+pcFZ4zegz5l9N5uIuc2DphizKoQ+5JrSrUHltDhW0I22PYgcGEDaicqvZXSatC WowotQRskAF7ezxA6U2X+WRqlx+k4oEWC539tvo9UHS34vHb/A7WlaJbB7hReeL9EKzR wex/gETBXGFhmQDeFWsk0RuVJipNqbCP8wkR6iWfAoxSI4PVCJJvP0ijQHTHrrgB9fAJ CgFklZL+wjFK+XWv9DDQpDz5QARud0hGZp4Adim8/UHIiZ1LcPc0qEZ9hsuL0ua7CBUZ tJfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095471; x=1701700271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fZIiUDywASZ5qLtxZqnaVnT8sxb13W9YOdsItG5ysDI=; b=FL5FzhSpbBkojd6cigJ6jvnhqUQCk4fFUBUUlJvEaDDf+5rd5hf4F48zkU93XDWJMj 033GLDAPdthkFw2plP8PE50ZvzqHEZflq9fmTGJR5zEeQarkKmA8J2H24vUARj9rhDGP FCPTCqs1VH4TQ5r/u14Mu3583VGiITbaLgBMwU260qFwFCEy0G5OdaLGW7PPYRDUC2rk dU1IDkpTeQ/EzGb3koMh3FiPamuw8Sw9jVy2iPgN2HRmZ2Jo6eME38bmccKywmE3yPW9 rdJojqyfCG/ywtcTSkiack0leKVKydZRglyluY/uASZSEsuZd2xvq82idyN4CmoAwXx2 SE+A== X-Gm-Message-State: AOJu0YxHzBkR7BADpvdaiMsB+S7LbSpBY3GEd5Rcry1zTN/5oQz9Es7t s3xRqqsQpnvIrWDulr7xGBlzs/wQsP8= X-Received: by 2002:a17:902:c411:b0:1cf:a0b1:ec06 with SMTP id k17-20020a170902c41100b001cfa0b1ec06mr13415865plk.55.1701095471403; Mon, 27 Nov 2023 06:31:11 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:10 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 10/17] nilfs2: Convert nilfs_readdir to use a folio Date: Mon, 27 Nov 2023 23:30:29 +0900 Message-Id: <20231127143036.2425-11-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:34 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727976641717846 X-GMAIL-MSGID: 1783727976641717846 From: "Matthew Wilcox (Oracle)" Use the new folio APIs to remove calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 5c9ca3f0d7f4..c7b046589877 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -284,9 +284,9 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx) for ( ; n < npages; n++, offset = 0) { char *kaddr, *limit; struct nilfs_dir_entry *de; - struct page *page; + struct folio *folio; - kaddr = nilfs_get_page(inode, n, &page); + kaddr = nilfs_get_folio(inode, n, &folio); if (IS_ERR(kaddr)) { nilfs_error(sb, "bad page in #%lu", inode->i_ino); ctx->pos += PAGE_SIZE - offset; @@ -298,7 +298,7 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx) for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) { if (de->rec_len == 0) { nilfs_error(sb, "zero-length directory entry"); - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); return -EIO; } if (de->inode) { @@ -311,13 +311,13 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx) if (!dir_emit(ctx, de->name, de->name_len, le64_to_cpu(de->inode), t)) { - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); return 0; } } ctx->pos += nilfs_rec_len_from_disk(de->rec_len); } - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); } return 0; } From patchwork Mon Nov 27 14:30:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170200 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165385vqx; Mon, 27 Nov 2023 06:33:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IGS27ArwOPoDuBkQF+ASJsFlXXhx2Rjry57NdAMrg0KLCetqXlYdlRnmZDk2FxLjM4Aulpx X-Received: by 2002:a05:6a20:7d96:b0:18b:d207:d857 with SMTP id v22-20020a056a207d9600b0018bd207d857mr16734535pzj.11.1701095595432; Mon, 27 Nov 2023 06:33:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095595; cv=none; d=google.com; s=arc-20160816; b=zPOeb1QDFqf4MAmAp26767TPZY0CSHIe4E8EMziehJBnsYuLbLjybELYSvpminq0LQ /95GRskCpfXb5SedCLEmqKw8osL3itIFd3bPCeUQ8iRM2lS3XGfwR6muu06kiWX2dGom Ba8hsXwSTNuIDSnu3zlme/gES3T63XK21N9JIvnWTOQFsbkb7PwtCZ6ig/EFC7kLGuLM t7zqT3oF5oFGJH+OyDmGdlUFJbtqO6MBvRX8KJHGW6WXfjyDxpIzCam7hebinh7O7wFN PT8YZOefj8oYB7fl5I9fvPBuAT/eNNtgadOVnMU4bm63ohsIE9MdXHx0KVmh5fLA4qv8 qqIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UePQJ8QOPzkPSmphS7Y8EH5bntY87+qPN2cJVMHHYV8=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=wv9RhYup913TnHAbjAPf2ZvYfuFCz7tl1GkankeJR97ahBc8762bhYfvT/6ykCibrW IYqMVR6Rj/1E2lCqo56+ci9th6gaFHB1CEpTTrgmiIeegnpBh+jbteUG+vGWD3ws+2QA OuUhPgraq7OugsB2TgZ3otWBFLLXh0o9OIFyU6cYyMctWS7EIM1z+ICFvVxjntoqOai+ fPklFrCQ/2JctDzFXb7mJJHW1vwDBCWjTiFHrGU8pwQWT7R5roWx7VPV1YBl9P+Z7ulk heUi8MRujDiXZYTT9WWG61X7lrnrpB+R+b/A2ojQ3hVxiifMnXw6cvN/qzX2TP6l/uQi x/PA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Q1VImZ3Z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id a22-20020a631a56000000b005b8de051ac6si9534278pgm.111.2023.11.27.06.33.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Q1VImZ3Z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id F408B80A056F; Mon, 27 Nov 2023 06:32:50 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233701AbjK0OcZ (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233796AbjK0ObV (ORCPT ); Mon, 27 Nov 2023 09:31:21 -0500 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08077191; Mon, 27 Nov 2023 06:31:17 -0800 (PST) Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-1cfa5840db3so23169205ad.2; Mon, 27 Nov 2023 06:31:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095476; x=1701700276; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UePQJ8QOPzkPSmphS7Y8EH5bntY87+qPN2cJVMHHYV8=; b=Q1VImZ3Z0PfW3BSdro6+l02BZpM3g3Sj2yvSRbjUlBrQUjQ9eWSZgRvNjX0HSD/a8p /w8GM0QFzI0LMPWMng8NNwfX+VS46CgN484hrfZjDE7cxiwnfkJK0hZm5pLbIPqdI0LG AuU/O8vly+gUiGceNCrbKXSv/LEngfljXCjo9BTfgDubm9AT5YIbyYUnowjL6R+1666b aqvj4PLdnem2ESft+m2lQKCcLL3CLL3xyGCU/HFcVoB4Z7tQZmaWsX7U8zkIMpmtyfBy KUEDqZt9nb/9xtgdGeCttc0SlbsU2k4MTbIgN5Sru3LNWtqNffy3bp2zboPtWzenQCNd VwRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095476; x=1701700276; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UePQJ8QOPzkPSmphS7Y8EH5bntY87+qPN2cJVMHHYV8=; b=OghfEdhRUL7QCSBgoUSt6k/2eQ3MG3x5t9QIlqq/FHnIGss22I23HQnZsqbKir/y4r Nm0v/msonJKpIqBaezvuxlZ44Ml238Oev1Lfe/KFd7+7NNZceLiBusfT8el07t8dGGSY ldCjh7B7SEBlwWSegv8+gAfOuCpejE2pTRfMzbm8NjNmPy2iWGFJPvq1XLVe9084n6TF 0G8j5o6+LGyPyw6L/0+xB2maW153RNv+oc9xFo2/X7UXqsf3zdbgA24ajsq/DhrbM2vw ipvAq4Y+XBIYyR83U03SJxr1tWbU4fJ9My0ds81rCPiaHZktpqddqB5qskJfT8ccIsFW h0ww== X-Gm-Message-State: AOJu0YxgfBEtf238AM8ovYYkbMvVPMQWKBLGUqe3ucXhB4PB7M0yXYZL ivQts4A2uyXhsWrORweFXfv9tltHxKY= X-Received: by 2002:a17:902:724a:b0:1cf:d2c3:2865 with SMTP id c10-20020a170902724a00b001cfd2c32865mr2634338pll.40.1701095476436; Mon, 27 Nov 2023 06:31:16 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:15 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 11/17] nilfs2: Convert nilfs_find_entry to use a folio Date: Mon, 27 Nov 2023 23:30:30 +0900 Message-Id: <20231127143036.2425-12-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:51 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728014992124075 X-GMAIL-MSGID: 1783728014992124075 From: "Matthew Wilcox (Oracle)" Use the new folio APIs to remove calls to compound_head(). [ konishi.ryusuke: resolved a conflict due to style warning correction ] Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index c7b046589877..a79726182867 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -339,7 +339,7 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, unsigned int reclen = NILFS_DIR_REC_LEN(namelen); unsigned long start, n; unsigned long npages = dir_pages(dir); - struct page *page = NULL; + struct folio *folio = NULL; struct nilfs_inode_info *ei = NILFS_I(dir); struct nilfs_dir_entry *de; @@ -354,7 +354,7 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, start = 0; n = start; do { - char *kaddr = nilfs_get_page(dir, n, &page); + char *kaddr = nilfs_get_folio(dir, n, &folio); if (!IS_ERR(kaddr)) { de = (struct nilfs_dir_entry *)kaddr; @@ -363,18 +363,18 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, if (de->rec_len == 0) { nilfs_error(dir->i_sb, "zero-length directory entry"); - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); goto out; } if (nilfs_match(namelen, name, de)) goto found; de = nilfs_next_entry(de); } - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); } if (++n >= npages) n = 0; - /* next page is past the blocks we've got */ + /* next folio is past the blocks we've got */ if (unlikely(n > (dir->i_blocks >> (PAGE_SHIFT - 9)))) { nilfs_error(dir->i_sb, "dir %lu size %lld exceeds block count %llu", @@ -387,7 +387,7 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, return NULL; found: - *res_page = page; + *res_page = &folio->page; ei->i_dir_start_lookup = n; return de; } From patchwork Mon Nov 27 14:30:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170201 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165429vqx; Mon, 27 Nov 2023 06:33:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IHF7/iPvOsOb5oGiKQ1xexV0UzMrXoQYDpNp5lnDYfMNce+MeI/7yBaKbMPpNhvEX6VCzO3 X-Received: by 2002:a05:6870:4c15:b0:1fa:20ee:6a17 with SMTP id pk21-20020a0568704c1500b001fa20ee6a17mr11346745oab.14.1701095598280; Mon, 27 Nov 2023 06:33:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095598; cv=none; d=google.com; s=arc-20160816; b=MehVlaAk7RP7Kst/vkRAkjxniSz57R+LPAQwaXjKYZ3iF+rMBgyWcwbY8yIuLz/Q6r xoInCWMg34EZkAWkxOu77urrXJFNe4WM2LAmqn7Gyos8ng81ZPaphxpTJmlSJPgJsSIV jaWm1E8tqZ1cYoKvS2MNjAkdT/E6BFcMS3y39l88/sbOfFmRA8B89X+DLBUI1mnh9vFE PF2HDdOncDu9SjkY5oQp0SAS+ndWdB2yWurq1pz7qVhZ1S+BLKmi9ibmDvag/HfHFs3k Kbz3cO8nQPvbOCYcZjMCcTyvNAN8zZA7Xd+C20YQDbE0agbYXEV+L1aeHKx9Vgf/FhtC qfOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TiorARWlp4qpkHsXWYNAOFHyrVXE8mudjiPl7CQm/78=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=PMbQcYrdx/6G8+TQwEDlP17kb6YrEI1i2wfEI1kf8cPAkyFs/CIPnYKkhZ8JpwWOEw ljn0gJK4Rjq5m4es+RCzS+1vgk3mNCwbu/rBsD/F+ubGNtJihW02c+JIkj+m1VQzunCu pYBRd98XsNzBPaoBBFhdux5LAkJcUguddLD1Ndvbb1xm9M2njDkMUSxmGBBPL5ap9XgJ tp1X7Az6HtnV9mWcbguSIQSsjK6eP3mzc/b1IY5F3AMsgY/9GVN57FSQFbDF4jK9Qxup 5vGvDiaxvtXAjCbV8fRlFx8+gCV+BkWXcPH+048CidN54bWq5lj6UF3DtvBXJv2J3jxA YZ5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Qlj7ObEV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id fo36-20020a0568709a2400b001fa0c9d6719si2706211oab.332.2023.11.27.06.33.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Qlj7ObEV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 0369A8058002; Mon, 27 Nov 2023 06:32:58 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233950AbjK0Ocg (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233797AbjK0ObV (ORCPT ); Mon, 27 Nov 2023 09:31:21 -0500 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7FDD41B5; Mon, 27 Nov 2023 06:31:19 -0800 (PST) Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1cfc2bcffc7so8815355ad.1; Mon, 27 Nov 2023 06:31:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095479; x=1701700279; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TiorARWlp4qpkHsXWYNAOFHyrVXE8mudjiPl7CQm/78=; b=Qlj7ObEVkgGfo0F+ejgNcIffZ6OYUtkuFJcPjUEJt66z1LHX24NLuaBc1nL8P1gORx dxyRk9buSB+wFBmCBKtlrWUxjjTJT9rE/UB/SFvkMdixk0gdNsCgh5o8cOdj1TGPMEKs LNKtPTpOyZW7hzAfVJRaDfJz2Y6RK/c0HROQSeJpNiSNYR5bCTa+gevAGiP1uY6yFJS6 ts5TSOZ1mrpMuGUftnd/FFVB/h7u3zJLLqV+0nb1YRmPExp5XetDpqeXNne4TNPORLgS PeBt0n+P1qr8VQU9TSJX8l6Ywbnel6jrBydQ0scbfxSFHvTrzwo/Vcn5/xFhx0nSK5iP V6Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095479; x=1701700279; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TiorARWlp4qpkHsXWYNAOFHyrVXE8mudjiPl7CQm/78=; b=L+RFO2jMGd/qN+OxgTlMdawEn7Ouw3lOiBWjfpqZOX1pbl0EaC0aCyeaL4IwvKyTyn trhod/PvkshUosjdbkebMnfqhZGBUt1sLnVlBzje4rGIuTF4UlHiuBGJjGokfA9h2t2H KtyCEuVbDREQxwfEOFSyYth9OqrL1EQiNNZu4RBbN3gRmztipdVnfxELH603yDcdC1yf PyMQBTR0LUsn2/pps0FJ+8jciac+Ha/D6aplunW3mMGUKrFVqAW/Zw7bYtg0bJvVpaWu UH5GJasgvQWi6ejem2Ifpde7oZZARXoOSt8HdmWp2NX8VIxO6qJ6J5EYMrojkgEe6viW Lhvw== X-Gm-Message-State: AOJu0YyAruV+FY39JQDiyUuISG7ghZRfq02/UPGtQYmRt0X3wzGKEX3t wZ+53S+dY+OGdqja4hsCFFZDPemarK8= X-Received: by 2002:a17:902:6941:b0:1cf:ce79:88e8 with SMTP id k1-20020a170902694100b001cfce7988e8mr3776147plt.29.1701095478869; Mon, 27 Nov 2023 06:31:18 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:18 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 12/17] nilfs2: Convert nilfs_rename() to use folios Date: Mon, 27 Nov 2023 23:30:31 +0900 Message-Id: <20231127143036.2425-13-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:58 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728018108008032 X-GMAIL-MSGID: 1783728018108008032 From: "Matthew Wilcox (Oracle)" This involves converting nilfs_find_entry(), nilfs_dotdot(), nilfs_set_link(), nilfs_delete_entry() and nilfs_do_unlink() to use folios as well. [ konishi.ryusuke: followed the change of page release helper call sites ] Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 68 ++++++++++++++++++++++------------------------- fs/nilfs2/namei.c | 36 ++++++++++++------------- fs/nilfs2/nilfs.h | 20 +++++++------- 3 files changed, 60 insertions(+), 64 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index a79726182867..2a759598801b 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -323,38 +323,35 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx) } /* - * nilfs_find_entry() + * nilfs_find_entry() * - * finds an entry in the specified directory with the wanted name. It - * returns the page in which the entry was found, and the entry itself - * (as a parameter - res_dir). Page is returned mapped and unlocked. - * Entry is guaranteed to be valid. + * Finds an entry in the specified directory with the wanted name. It + * returns the folio in which the entry was found, and the entry itself. + * The folio is mapped and unlocked. When the caller is finished with + * the entry, it should call folio_release_kmap(). + * + * On failure, returns NULL and the caller should ignore foliop. */ -struct nilfs_dir_entry * -nilfs_find_entry(struct inode *dir, const struct qstr *qstr, - struct page **res_page) +struct nilfs_dir_entry *nilfs_find_entry(struct inode *dir, + const struct qstr *qstr, struct folio **foliop) { const unsigned char *name = qstr->name; int namelen = qstr->len; unsigned int reclen = NILFS_DIR_REC_LEN(namelen); unsigned long start, n; unsigned long npages = dir_pages(dir); - struct folio *folio = NULL; struct nilfs_inode_info *ei = NILFS_I(dir); struct nilfs_dir_entry *de; if (npages == 0) goto out; - /* OFFSET_CACHE */ - *res_page = NULL; - start = ei->i_dir_start_lookup; if (start >= npages) start = 0; n = start; do { - char *kaddr = nilfs_get_folio(dir, n, &folio); + char *kaddr = nilfs_get_folio(dir, n, foliop); if (!IS_ERR(kaddr)) { de = (struct nilfs_dir_entry *)kaddr; @@ -363,14 +360,14 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, if (de->rec_len == 0) { nilfs_error(dir->i_sb, "zero-length directory entry"); - folio_release_kmap(folio, kaddr); + folio_release_kmap(*foliop, kaddr); goto out; } if (nilfs_match(namelen, name, de)) goto found; de = nilfs_next_entry(de); } - folio_release_kmap(folio, kaddr); + folio_release_kmap(*foliop, kaddr); } if (++n >= npages) n = 0; @@ -387,14 +384,13 @@ nilfs_find_entry(struct inode *dir, const struct qstr *qstr, return NULL; found: - *res_page = &folio->page; ei->i_dir_start_lookup = n; return de; } -struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct page **p) +struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct folio **foliop) { - struct nilfs_dir_entry *de = nilfs_get_page(dir, 0, p); + struct nilfs_dir_entry *de = nilfs_get_folio(dir, 0, foliop); if (IS_ERR(de)) return NULL; @@ -405,30 +401,30 @@ ino_t nilfs_inode_by_name(struct inode *dir, const struct qstr *qstr) { ino_t res = 0; struct nilfs_dir_entry *de; - struct page *page; + struct folio *folio; - de = nilfs_find_entry(dir, qstr, &page); + de = nilfs_find_entry(dir, qstr, &folio); if (de) { res = le64_to_cpu(de->inode); - unmap_and_put_page(page, de); + folio_release_kmap(folio, de); } return res; } void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, - struct page *page, struct inode *inode) + struct folio *folio, struct inode *inode) { - unsigned int from = offset_in_page(de); - unsigned int to = from + nilfs_rec_len_from_disk(de->rec_len); - struct address_space *mapping = page->mapping; + size_t from = offset_in_folio(folio, de); + size_t to = from + nilfs_rec_len_from_disk(de->rec_len); + struct address_space *mapping = folio->mapping; int err; - lock_page(page); - err = nilfs_prepare_chunk(page, from, to); + folio_lock(folio); + err = nilfs_prepare_chunk(&folio->page, from, to); BUG_ON(err); de->inode = cpu_to_le64(inode->i_ino); nilfs_set_de_type(de, inode); - nilfs_commit_chunk(page, mapping, from, to); + nilfs_commit_chunk(&folio->page, mapping, from, to); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); } @@ -532,14 +528,14 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) /* * nilfs_delete_entry deletes a directory entry by merging it with the - * previous entry. Page is up-to-date. + * previous entry. Folio is up-to-date. */ -int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) +int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct folio *folio) { - struct address_space *mapping = page->mapping; + struct address_space *mapping = folio->mapping; struct inode *inode = mapping->host; - char *kaddr = (char *)((unsigned long)dir & PAGE_MASK); - unsigned int from, to; + char *kaddr = (char *)((unsigned long)dir & ~(folio_size(folio) - 1)); + size_t from, to; struct nilfs_dir_entry *de, *pde = NULL; int err; @@ -559,13 +555,13 @@ int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) } if (pde) from = (char *)pde - kaddr; - lock_page(page); - err = nilfs_prepare_chunk(page, from, to); + folio_lock(folio); + err = nilfs_prepare_chunk(&folio->page, from, to); BUG_ON(err); if (pde) pde->rec_len = nilfs_rec_len_to_disk(to - from); dir->inode = 0; - nilfs_commit_chunk(page, mapping, from, to); + nilfs_commit_chunk(&folio->page, mapping, from, to); inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); out: return err; diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c index c08b1bf9fa7b..959bd9fb3d81 100644 --- a/fs/nilfs2/namei.c +++ b/fs/nilfs2/namei.c @@ -260,11 +260,11 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry) { struct inode *inode; struct nilfs_dir_entry *de; - struct page *page; + struct folio *folio; int err; err = -ENOENT; - de = nilfs_find_entry(dir, &dentry->d_name, &page); + de = nilfs_find_entry(dir, &dentry->d_name, &folio); if (!de) goto out; @@ -279,8 +279,8 @@ static int nilfs_do_unlink(struct inode *dir, struct dentry *dentry) inode->i_ino, inode->i_nlink); set_nlink(inode, 1); } - err = nilfs_delete_entry(de, page); - unmap_and_put_page(page, de); + err = nilfs_delete_entry(de, folio); + folio_release_kmap(folio, de); if (err) goto out; @@ -348,9 +348,9 @@ static int nilfs_rename(struct mnt_idmap *idmap, { struct inode *old_inode = d_inode(old_dentry); struct inode *new_inode = d_inode(new_dentry); - struct page *dir_page = NULL; + struct folio *dir_folio = NULL; struct nilfs_dir_entry *dir_de = NULL; - struct page *old_page; + struct folio *old_folio; struct nilfs_dir_entry *old_de; struct nilfs_transaction_info ti; int err; @@ -363,19 +363,19 @@ static int nilfs_rename(struct mnt_idmap *idmap, return err; err = -ENOENT; - old_de = nilfs_find_entry(old_dir, &old_dentry->d_name, &old_page); + old_de = nilfs_find_entry(old_dir, &old_dentry->d_name, &old_folio); if (!old_de) goto out; if (S_ISDIR(old_inode->i_mode)) { err = -EIO; - dir_de = nilfs_dotdot(old_inode, &dir_page); + dir_de = nilfs_dotdot(old_inode, &dir_folio); if (!dir_de) goto out_old; } if (new_inode) { - struct page *new_page; + struct folio *new_folio; struct nilfs_dir_entry *new_de; err = -ENOTEMPTY; @@ -383,11 +383,11 @@ static int nilfs_rename(struct mnt_idmap *idmap, goto out_dir; err = -ENOENT; - new_de = nilfs_find_entry(new_dir, &new_dentry->d_name, &new_page); + new_de = nilfs_find_entry(new_dir, &new_dentry->d_name, &new_folio); if (!new_de) goto out_dir; - nilfs_set_link(new_dir, new_de, new_page, old_inode); - unmap_and_put_page(new_page, new_de); + nilfs_set_link(new_dir, new_de, new_folio, old_inode); + folio_release_kmap(new_folio, new_de); nilfs_mark_inode_dirty(new_dir); inode_set_ctime_current(new_inode); if (dir_de) @@ -410,14 +410,14 @@ static int nilfs_rename(struct mnt_idmap *idmap, */ inode_set_ctime_current(old_inode); - nilfs_delete_entry(old_de, old_page); + nilfs_delete_entry(old_de, old_folio); if (dir_de) { - nilfs_set_link(old_inode, dir_de, dir_page, new_dir); - unmap_and_put_page(dir_page, dir_de); + nilfs_set_link(old_inode, dir_de, dir_folio, new_dir); + folio_release_kmap(dir_folio, dir_de); drop_nlink(old_dir); } - unmap_and_put_page(old_page, old_de); + folio_release_kmap(old_folio, old_de); nilfs_mark_inode_dirty(old_dir); nilfs_mark_inode_dirty(old_inode); @@ -427,9 +427,9 @@ static int nilfs_rename(struct mnt_idmap *idmap, out_dir: if (dir_de) - unmap_and_put_page(dir_page, dir_de); + folio_release_kmap(dir_folio, dir_de); out_old: - unmap_and_put_page(old_page, old_de); + folio_release_kmap(old_folio, old_de); out: nilfs_transaction_abort(old_dir->i_sb); return err; diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h index 8046490cd7fe..98cffaf0ac12 100644 --- a/fs/nilfs2/nilfs.h +++ b/fs/nilfs2/nilfs.h @@ -226,16 +226,16 @@ static inline __u32 nilfs_mask_flags(umode_t mode, __u32 flags) } /* dir.c */ -extern int nilfs_add_link(struct dentry *, struct inode *); -extern ino_t nilfs_inode_by_name(struct inode *, const struct qstr *); -extern int nilfs_make_empty(struct inode *, struct inode *); -extern struct nilfs_dir_entry * -nilfs_find_entry(struct inode *, const struct qstr *, struct page **); -extern int nilfs_delete_entry(struct nilfs_dir_entry *, struct page *); -extern int nilfs_empty_dir(struct inode *); -extern struct nilfs_dir_entry *nilfs_dotdot(struct inode *, struct page **); -extern void nilfs_set_link(struct inode *, struct nilfs_dir_entry *, - struct page *, struct inode *); +int nilfs_add_link(struct dentry *, struct inode *); +ino_t nilfs_inode_by_name(struct inode *, const struct qstr *); +int nilfs_make_empty(struct inode *, struct inode *); +struct nilfs_dir_entry *nilfs_find_entry(struct inode *, const struct qstr *, + struct folio **); +int nilfs_delete_entry(struct nilfs_dir_entry *, struct folio *); +int nilfs_empty_dir(struct inode *); +struct nilfs_dir_entry *nilfs_dotdot(struct inode *, struct folio **); +void nilfs_set_link(struct inode *, struct nilfs_dir_entry *, + struct folio *, struct inode *); /* file.c */ extern int nilfs_sync_file(struct file *, loff_t, loff_t, int); From patchwork Mon Nov 27 14:30:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170197 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165148vqx; Mon, 27 Nov 2023 06:32:58 -0800 (PST) X-Google-Smtp-Source: AGHT+IEJXwQrybWhrxJ5Qg5MJA531n0HYlVwPF0FIwuEP7j5VhaedfSj9/MeliZj/y7BzAQcKDOJ X-Received: by 2002:a05:6820:16a4:b0:58d:9dbe:3a84 with SMTP id bc36-20020a05682016a400b0058d9dbe3a84mr1310427oob.2.1701095578117; Mon, 27 Nov 2023 06:32:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095578; cv=none; d=google.com; s=arc-20160816; b=VKyGFTVAY9Av7Jb3XwKNOTa1JDA03Zjwa/xFESzyqMH00Hpjc7FZHrqsII082kywdw M0q705csGJGXTd3w7kTOYuqDh4ZV9IjsPeMeLkMPVbXm9kdH5kiPhSE0ICUlp+f7cHVL rr47tM1PHQ1d21wwuFDvIIg+c4r8fjZsAXUOQoEHuZB0AOvAk8/YbIe+leV7PIB4hr/T 0p4lmtjO2Q+d/VMpUebMcB2S9E4ClaD0QC8pwEs+LdWn9zm7OcICOCun+KmnX6/PDGGa tPI4Hn7OfOrVLngzQwujFMmT0qEuby8a0iFrI/FqJeCd/Ga8EhJE1j0864ZnQMHm88b+ lwUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=sYhxtv86BtK/w/7d1AHNEGaD3rJv/iHyqgFD4qVbk18=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=xFss3Os42q1DVXayUyQkbpvChBJjC9nMy10mgeGJZc2ygLe1nmgaVuv5QCywm6sLYy fydKSsnvtPdWAdE1tb9sVpmZW+bOoIeFVeluxWrSEP1dTcf+zBSpZRebkyXzj+gD34Oj 0Qqx1p+JpbwceFr6AUthXd79aeH3+UAZqyd9xA71dktByUezdwe7+xOYA/uhnY1KQpxc KQvvW5HH1RVVTTrml5dneA4Yaz8OHfeRf/MR1jp/1Hpg7MXt2peklZde9oZohhR5rhWk le33h96j6gc/SovRoHUsp6tfDbW4S7QHIczihBr2LyqIQASqr7I7O5Fg+YHkYZSl/nKv Fu2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=SbhbYCgd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id c14-20020a4ad78e000000b0058d237065b6si3452623oou.67.2023.11.27.06.32.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:32:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=SbhbYCgd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 675948021D05; Mon, 27 Nov 2023 06:32:55 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233949AbjK0Occ (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233798AbjK0ObV (ORCPT ); Mon, 27 Nov 2023 09:31:21 -0500 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4213D1A7; Mon, 27 Nov 2023 06:31:22 -0800 (PST) Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1cfd78f8a12so5374665ad.2; Mon, 27 Nov 2023 06:31:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095482; x=1701700282; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sYhxtv86BtK/w/7d1AHNEGaD3rJv/iHyqgFD4qVbk18=; b=SbhbYCgdRRJLY580S8COCvn54sLEVfwmMgo0d7JdRY2xOyN7Ff9fn5WCO8o+FwW0oZ /sclR8OD0JmkN6aTv/bBwD2A90IDWQvhJCSNguOMZ2V4Iah5SR/c99zjCH+x4w41C3Hz 63qjI8LND+2hYDLmCgsmLKTS+ONS5v75+/BNRU087DzoadWlksUJ9UjuKbz8/I1bxWR+ 3j3Okrqj4W0d2YkvUZ+FwguBM7xOUerK9pQFHZ4zxFN7gq/dy6aRdwihMY8UMMpw/jqx 2W2MUWiuJV9HJxeN0NPrY94W+sP+wBCnjo2Exw7PTuzc65EYhfZJ30Rbyvz4KNBsJ9E+ q05Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095482; x=1701700282; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sYhxtv86BtK/w/7d1AHNEGaD3rJv/iHyqgFD4qVbk18=; b=TgwXaetQeSUsuRXVlnCe3zjKb8bjd/6cRxhNhhcR51xnNe++4UX3Gf1+VqkyV5MfDk 0AReYKRIaPxQNMvkcsbcwxCgPMpDOM4xccNK2Og7H9ZLksL2OVl7DFb/zJm9hGyorfht JxRTUWKUNvrgKmkV06ipG4zOBlZHlA7Xk+8PAwgTRdRQU/DnHeIj8QlIW636apeHoJG3 gFmELsLf2jzZdT9FCKeZ/pmzHHZVYpiwDjdnos6QOp0MGsuV+OF97KbK3bb445bTWJjv F5Ar4EWjj4UJcbF1AgVKdQ8U2tYXseyxpnLG2JoEuGUrWuLpiqJiRvNU7nRG1imcDK+9 47/w== X-Gm-Message-State: AOJu0YxRTc2s7ssLOzeNrR6ZZlkAFUG+GTHgV3Lcvctv6Oh1ar80yGIM iruV6jK5ig2goSArll91ybbitet4CUM= X-Received: by 2002:a17:902:d2c6:b0:1cf:cf34:d4fa with SMTP id n6-20020a170902d2c600b001cfcf34d4famr4051225plc.28.1701095481683; Mon, 27 Nov 2023 06:31:21 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:21 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 13/17] nilfs2: Convert nilfs_add_link() to use a folio Date: Mon, 27 Nov 2023 23:30:32 +0900 Message-Id: <20231127143036.2425-14-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:32:55 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783727996379195382 X-GMAIL-MSGID: 1783727996379195382 From: "Matthew Wilcox (Oracle)" Remove six calls to compound_head() by using the folio API. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 2a759598801b..8d8c42e34148 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -439,30 +439,28 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) unsigned int chunk_size = nilfs_chunk_size(dir); unsigned int reclen = NILFS_DIR_REC_LEN(namelen); unsigned short rec_len, name_len; - struct page *page = NULL; + struct folio *folio = NULL; struct nilfs_dir_entry *de; unsigned long npages = dir_pages(dir); unsigned long n; - char *kaddr; - unsigned int from, to; + size_t from, to; int err; /* * We take care of directory expansion in the same loop. - * This code plays outside i_size, so it locks the page + * This code plays outside i_size, so it locks the folio * to protect that region. */ for (n = 0; n <= npages; n++) { + char *kaddr = nilfs_get_folio(dir, n, &folio); char *dir_end; - kaddr = nilfs_get_page(dir, n, &page); - err = PTR_ERR(kaddr); if (IS_ERR(kaddr)) - goto out; - lock_page(page); + return PTR_ERR(kaddr); + folio_lock(folio); dir_end = kaddr + nilfs_last_byte(dir, n); de = (struct nilfs_dir_entry *)kaddr; - kaddr += PAGE_SIZE - reclen; + kaddr += folio_size(folio) - reclen; while ((char *)de <= kaddr) { if ((char *)de == dir_end) { /* We hit i_size */ @@ -489,16 +487,16 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) goto got_it; de = (struct nilfs_dir_entry *)((char *)de + rec_len); } - unlock_page(page); - unmap_and_put_page(page, kaddr); + folio_unlock(folio); + folio_release_kmap(folio, kaddr); } BUG(); return -EINVAL; got_it: - from = offset_in_page(de); + from = offset_in_folio(folio, de); to = from + rec_len; - err = nilfs_prepare_chunk(page, from, to); + err = nilfs_prepare_chunk(&folio->page, from, to); if (err) goto out_unlock; if (de->inode) { @@ -513,16 +511,15 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) memcpy(de->name, name, namelen); de->inode = cpu_to_le64(inode->i_ino); nilfs_set_de_type(de, inode); - nilfs_commit_chunk(page, page->mapping, from, to); + nilfs_commit_chunk(&folio->page, folio->mapping, from, to); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); nilfs_mark_inode_dirty(dir); /* OFFSET_CACHE */ out_put: - unmap_and_put_page(page, de); -out: + folio_release_kmap(folio, de); return err; out_unlock: - unlock_page(page); + folio_unlock(folio); goto out_put; } From patchwork Mon Nov 27 14:30:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170205 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165831vqx; Mon, 27 Nov 2023 06:33:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IFKuXJHcLG/Dn0IBaMVwmGSALoCj0PlBuK3tQ/EUisjNnKE3JzzHDVohEFIZOPrbIig8hA4 X-Received: by 2002:a05:6871:438f:b0:1e9:e268:ab6f with SMTP id lv15-20020a056871438f00b001e9e268ab6fmr16357020oab.17.1701095623765; Mon, 27 Nov 2023 06:33:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095623; cv=none; d=google.com; s=arc-20160816; b=PpgjdnTPeQUHK07OGsx9Xsfa5TnEkxY8zH+irkso1frCrhygJn34ouoLB30Xs4cCjN +PidtWnyxGtghopS3zb9SmTHaGSl7i84XQCe4OrP3d2oXvjG0eB3Wavb+k3lgUwlwZXq gQ34uJgoz1dnr3mRlkaBC0g9WZDqwh2zZYQFxl1jbaPUiGXeqUH7lhf1DeLe1aSJwaHD fR870Ao+tVAeQ+RSKhLWViIlt8SJCiL7F+iBuOTBSOowXsoojMETiv1rkRuYs2B5haiT MfOWUY2mgd8AFRTuN+I+G8AJ7HbpO0o+6922l31ZDHfs91syaZ4xCY3S7n3ZNaRPvfzH Xh+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=LQ0hTMNOO2rQEY/dpZit98zV3CambmsVJR+t1rZ7hqw=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=r6q5AN8StRS7zNfjKL8TW05zJ+aX2y5RmK0VhCZBbl09LLr/Q219vQaMFleJ8ADhCH Gtw0Jd25iVuVM/9JbsorUvPHFpLY1lSiV9UEA97nGRdP1o3VsMMczVw42tvi1DbPUmSR 4I+JZkTfEV3g8r6fPdqL6m3gxj50ty0T+2vHv+8qkBTt2VM3iXUaVSnyNZqE0p1NAp3h MuDv/Cz+ayyfBSm8F5xE6J6aVAFM/nwI71ZOr6jxH2xuUcRyMbByZJVfgi67ZeTHlfeJ Ge5rcPwCZmjE72GJmH59sQfKkH2dOYAPsZZeejZkgs+/XZgFTuoEltIKvezs0akWqLCM Mk9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=lvFBsreH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id j4-20020a056830270400b006d7e9a52180si4168244otu.132.2023.11.27.06.33.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=lvFBsreH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 623E78225091; Mon, 27 Nov 2023 06:33:39 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233957AbjK0Ocj (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233799AbjK0ObW (ORCPT ); Mon, 27 Nov 2023 09:31:22 -0500 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8711C1AD; Mon, 27 Nov 2023 06:31:25 -0800 (PST) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1cf89df1eecso27319505ad.3; Mon, 27 Nov 2023 06:31:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095485; x=1701700285; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LQ0hTMNOO2rQEY/dpZit98zV3CambmsVJR+t1rZ7hqw=; b=lvFBsreHk2zBB4k3PxfvUiSWpHMqxYMoxPpfUbGsWPzafdGKfV9jpTYqrtJtgbMJr0 YLQ5fZl+e6CMCbDY+1aGMrqmtXUGHrwj0F8bQJJF5RY/XHhdxxQ7j99AZWHcfRntw+FT 3dtMoaiUrQ3vSNhMf3CRCDNIKozNsXaE+7lLATjUgzIu3+9afC+r3PNfq9yG26mrEuj2 KBtmM2wJp38mRb1irXA3GEyo3CxwrurWtr2o2CiloHIiKVP/jbzg7Q0zPdsBZWba2arb XtpXPHGl8/OQMNnGqRuED2NqSeqTfr6w++2yuqLkT/SQUrcuZ3wT5sZa1slrV7MN1nc6 zpng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095485; x=1701700285; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LQ0hTMNOO2rQEY/dpZit98zV3CambmsVJR+t1rZ7hqw=; b=oE72ZTJXknOkhAjo3J3fxy49gThjWmVuykMy8N94IEOPx6zQ61MukmGAHxCSyZNTBf ks0GJYEJOTgg9iDzzmPVSj/+U0I9HZ1Wi0/KH7MC4sV4x7REkBYraYcupaIau8zFvX3f yzm3uny6w4gDXVOyN1O+URquzUEzx/UpkRaUtVB5CVIax9k3FYPldLMVOkpcaR3xvpPV 1o6fCJ8FCOPvWzfSJ1fsFu6Voq0/XRCHXCZSv8Ibf0PPNaaFKpnQJDkoyfCz69cZi6GW Cs3/NSH9Lwje7HJUwcBEA+Ui0rumqDU4TX+YnLG9PIzM18h5VMLjuFl0WISgwQH+bDsX 1efQ== X-Gm-Message-State: AOJu0YxjHT9idnkKOUUp8H3D2koxfUuEF1wYakmvTIB3XmvB41Ru4njk DKFSFCUmltCSxWNU8iZTRsA= X-Received: by 2002:a17:902:e843:b0:1cf:d24c:7b6c with SMTP id t3-20020a170902e84300b001cfd24c7b6cmr2485252plg.59.1701095484950; Mon, 27 Nov 2023 06:31:24 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:24 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 14/17] nilfs2: Convert nilfs_empty_dir() to use a folio Date: Mon, 27 Nov 2023 23:30:33 +0900 Message-Id: <20231127143036.2425-15-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:33:39 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728044967786067 X-GMAIL-MSGID: 1783728044967786067 From: "Matthew Wilcox (Oracle)" Remove three calls to compound_head() by using the folio API. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 8d8c42e34148..919936d9ec27 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -203,17 +203,6 @@ static void *nilfs_get_folio(struct inode *dir, unsigned long n, return ERR_PTR(-EIO); } -static void *nilfs_get_page(struct inode *dir, unsigned long n, - struct page **pagep) -{ - struct folio *folio; - void *kaddr = nilfs_get_folio(dir, n, &folio); - - if (!IS_ERR(kaddr)) - *pagep = &folio->page; - return kaddr; -} - /* * NOTE! unlike strncmp, nilfs_match returns 1 for success, 0 for failure. * @@ -611,14 +600,14 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent) */ int nilfs_empty_dir(struct inode *inode) { - struct page *page = NULL; + struct folio *folio = NULL; char *kaddr; unsigned long i, npages = dir_pages(inode); for (i = 0; i < npages; i++) { struct nilfs_dir_entry *de; - kaddr = nilfs_get_page(inode, i, &page); + kaddr = nilfs_get_folio(inode, i, &folio); if (IS_ERR(kaddr)) continue; @@ -647,12 +636,12 @@ int nilfs_empty_dir(struct inode *inode) } de = nilfs_next_entry(de); } - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); } return 1; not_empty: - unmap_and_put_page(page, kaddr); + folio_release_kmap(folio, kaddr); return 0; } From patchwork Mon Nov 27 14:30:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170202 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165459vqx; Mon, 27 Nov 2023 06:33:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IFThmZc3UaW/zqbN/hyzqoB2bMbjI/hRqBidUOScH0dkgbsbZdl/PpFzxqR001duI03ZE0I X-Received: by 2002:a17:902:e543:b0:1cf:5197:25ac with SMTP id n3-20020a170902e54300b001cf519725acmr21203194plf.12.1701095600259; Mon, 27 Nov 2023 06:33:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095600; cv=none; d=google.com; s=arc-20160816; b=uvArzGdRSBCDOVVTW814h1jrMInrkQqWuKq8A218ea0FqVkdloeK9VGEwdmd/ArXmq VQJwKCjP/NUwEFy3UNfyVxFSb4aIpO31XHRfEJ0vojKToFOoSKJg/zqsmQItkSflGF3r 8kKQxMyVX/kroeK8wCEdm31a1oumxJRT8k3RjfdvGxq1/oG/Y3I20/TUQteveH1i0Ps2 uoj09Zu1mhl3ZsHRHwFdND56DxQ9+wo7OC7lewCLeguXMHX1EgCe22SSgOQotmAt7b72 vzXu53F7s+m/7YhOo98744Ggasa2JX+Lk4ZtXuJ8RtSIEkMaLG0XIB3DbTkuE8OoYtgR Qq2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fUxnds+HPQEGrIJRV5viCfLrna/cjmgtYIVib94o7Eo=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=zkwn4gCBpWilSGZPo5v1A9o/Vn7eU1/MfdCiVj5aNBpZBFIkLZ4wi5+Zf9YG1PGU2t gGPIS2dWTAN/xal3r1/HtdYPT6bkGweIIZhSlOkT6y0YvLy2nA+HMLf+e57CjA6SztA7 yPZQE3lWABwt7t2P2LG/y8ICqG+UahZw0YNEyYwEcxq46pO2WKmau5TmqWfYqjqXEs4D PfOsFu3WaQHYqiP+lOwyqJWQpmjZIlBz6Ozkf5Fdc76j/cwEBXqxjh4v/TQOJucV8meG wkJP5ABnwm4XsEA23qOzmPjbBwMRX4pbYn0gpM4Db53OrxsAh6A9vUQ4GemcuCTvQ/k/ MqWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=RdivvAYF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id p2-20020a170902e74200b001cfd52a2266si1482309plf.403.2023.11.27.06.33.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=RdivvAYF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 4E65980952F1; Mon, 27 Nov 2023 06:33:17 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233963AbjK0Ocm (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233800AbjK0ObW (ORCPT ); Mon, 27 Nov 2023 09:31:22 -0500 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81687C0; Mon, 27 Nov 2023 06:31:27 -0800 (PST) Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1cfbce92362so10659765ad.1; Mon, 27 Nov 2023 06:31:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095487; x=1701700287; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fUxnds+HPQEGrIJRV5viCfLrna/cjmgtYIVib94o7Eo=; b=RdivvAYF6eVZLGArJIlnuuoF0pUYPM9OlLjbM4qrsAKAPIXYjfXqM5ghNnG2vb3Pzw LPsY4RKvQJ+bvFT2Of0zQ946I1gD9DktveSyBD0Z31l8Kh4KuwJwovLZlKETeeauP2rp K9OhMy0w1No0B0xbDCucDS+e8Ooptsz38qxxoCF+TBLr5iNgLHgOH266Wx/wdgWfscoi CZYSrclNcNNhBBEGFtI7rLxdgRwe7k5c+tR8NITJZHdLUlzZI3JiAkpWKMAnC2QbSOrh 1k/VRJVEgO9JLNd4QaGU0svDJKyKIWvv//+hpdypeWz8OVdgCwsgmhVvUUD7go99Ximu Lg8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095487; x=1701700287; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fUxnds+HPQEGrIJRV5viCfLrna/cjmgtYIVib94o7Eo=; b=F2Z6KJidmnrLtW1YRpGiaYylkMaQ72cbmjR0u3EGMNNRYDwYT6w6qQ1OCx6nfFmgDO AG92lOUDFEKtXTj+59F2tj9RJIF/Bw22WoyUpJ/yKm6k8o4BFSoK74aPSr8CXmwEUeva RFdoZd/a5mSVI42t95mnRTpmHvEj7jqfu0xykrg0KIt3w5aw8HAQpr9zcc3W2eBGjUbz 0gwD5Qi+XDn0Ap4UgtJl/3R7TDbgIhcoHWZZlkn34YNwunZT1GGT1RIVg1pQJ1RM4d1j dcMY4OLrXyT3zGGJ86iIlleA/v6gIybh/uAB55c215oCHUUYxDqKiUiNhblxB8MCJkTP ppug== X-Gm-Message-State: AOJu0YwDkJLEVtfSk4fgdn+7ReOqBg3wW2aHpZ6LkLoqG2GgaMHajLXN 7Aw8+7ELbXQi/GJsB6WP6qA= X-Received: by 2002:a17:902:f544:b0:1cf:ca7b:8ef3 with SMTP id h4-20020a170902f54400b001cfca7b8ef3mr5192081plf.11.1701095486878; Mon, 27 Nov 2023 06:31:26 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:26 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 15/17] nilfs2: Convert nilfs_make_empty() to use a folio Date: Mon, 27 Nov 2023 23:30:34 +0900 Message-Id: <20231127143036.2425-16-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:33:17 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728020107542916 X-GMAIL-MSGID: 1783728020107542916 From: "Matthew Wilcox (Oracle)" Remove two calls to compound_head() and switch from kmap_atomic to kmap_local. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index 919936d9ec27..ff0a009a292f 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -559,21 +559,21 @@ int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct folio *folio) int nilfs_make_empty(struct inode *inode, struct inode *parent) { struct address_space *mapping = inode->i_mapping; - struct page *page = grab_cache_page(mapping, 0); + struct folio *folio = filemap_grab_folio(mapping, 0); unsigned int chunk_size = nilfs_chunk_size(inode); struct nilfs_dir_entry *de; int err; void *kaddr; - if (!page) - return -ENOMEM; + if (IS_ERR(folio)) + return PTR_ERR(folio); - err = nilfs_prepare_chunk(page, 0, chunk_size); + err = nilfs_prepare_chunk(&folio->page, 0, chunk_size); if (unlikely(err)) { - unlock_page(page); + folio_unlock(folio); goto fail; } - kaddr = kmap_atomic(page); + kaddr = kmap_local_folio(folio, 0); memset(kaddr, 0, chunk_size); de = (struct nilfs_dir_entry *)kaddr; de->name_len = 1; @@ -588,10 +588,10 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent) de->inode = cpu_to_le64(parent->i_ino); memcpy(de->name, "..\0", 4); nilfs_set_de_type(de, inode); - kunmap_atomic(kaddr); - nilfs_commit_chunk(page, mapping, 0, chunk_size); + kunmap_local(kaddr); + nilfs_commit_chunk(&folio->page, mapping, 0, chunk_size); fail: - put_page(page); + folio_put(folio); return err; } From patchwork Mon Nov 27 14:30:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170203 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165548vqx; Mon, 27 Nov 2023 06:33:26 -0800 (PST) X-Google-Smtp-Source: AGHT+IGAZ34ix03g8ebKqQO2B8REmKVI6C/+3UF+7S7i+2z7PHGvUDgNEebfqBH/W9MnsanB5ZAj X-Received: by 2002:a05:6871:530f:b0:1fa:1d84:e330 with SMTP id hx15-20020a056871530f00b001fa1d84e330mr11728494oac.39.1701095606201; Mon, 27 Nov 2023 06:33:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095606; cv=none; d=google.com; s=arc-20160816; b=08A7j44DN6Yb2XeQWwcHFjBLatyQafvT15NIJiA1xm+Q3nerCn2y3qPtyUfpdeN10u dTFkMcpMw992py/QgsErJxCTOiTFr26z1voxCxhOd4qsMBIWYEZWvZpC5tdz2DtKUjtb N9wUnZDhTjBFrFtwtTdNskT5i8N4CeTenFOeDLzlbQPHgpZ1M3ZgncGOCEm4AQPR5JcC nTduVPUjb+XieXEUursVVOpy0BJZMA4VZXrU8uupzXh0W7/X9Pv7IMBWJAaZL3ckWhf+ Z+RNYhOY5oWBWjoJULEPTFrAO3rvYa1EpiQ4K0aiwyr56j8hB3WhudtKgI2lXmKusFz7 YgZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=A/T4u+44sUSgL7jMIOqkqh2vRw9RREOIECbOfKqfV6Q=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=ZjAvlMSrowyGJoNVNrBmPDfm35CS6q9kKxXmmhaCxwyHol73fd1fiQLy9jqjM9kNYE KQWfAyK1ptX4s4yw3SKvx6r8prd5wsGPswpOMc1W/k/48P0BEzhVwtjocSCM6X7T2HLN 2eeoyr8rp0hiMVo0fz/M0Ko2x2Jy6fpav9ISPv+yqTORKl4Gbdw5APx9Esh6bUqWkqCn KSkvsn3ioDsbceNPkT4szP39rGVXDAp27Te2f9ge6aekEQTCO8L7JwxGGaNTMcm60PCK 4jEX71PzFoLI6AFPDve0CHwFFjVzJq8R9vcZy4P5ZhXUCAz7innoYSwmybFXGXEv2Ls/ VdqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=JlJmnaVh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id v40-20020a056870b52800b001fa20faa92esi2064327oap.48.2023.11.27.06.33.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=JlJmnaVh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id A62CB8021D03; Mon, 27 Nov 2023 06:33:20 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233686AbjK0Ocu (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41982 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233802AbjK0ObX (ORCPT ); Mon, 27 Nov 2023 09:31:23 -0500 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C4701BC; Mon, 27 Nov 2023 06:31:29 -0800 (PST) Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-1cfaaa79766so21654435ad.3; Mon, 27 Nov 2023 06:31:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095489; x=1701700289; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=A/T4u+44sUSgL7jMIOqkqh2vRw9RREOIECbOfKqfV6Q=; b=JlJmnaVhDJtwC5aYAOxjyqPsxqI719U3yl9x5xaC2n0QSoO+MVNvTp2OyP60ql31+t bPMLCFpTpHA5zgyc8t/nwOP6A1iFxb6GyNW6/XJ4axqzFuwXNePfLJXQdo6UTHeqWqPN gIMRg4QDyGf8jOh3q8RQh1OdZpDRW5+DNoejCmzSaVtAUhd9FF3xlc4CIKhYXP057UWB ITYdVubedInsQb7itxGK70omHTDz7e5AvCUFWANPBEwMJUUIhqZV9cnSUW+2iC39lEnt bZBXYedwmlzF7SlmQw6eWc50OXd9FE5PIij5HhX6WWLLc33nCeIdYGMBOs0KpFpRE/vB sUxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095489; x=1701700289; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=A/T4u+44sUSgL7jMIOqkqh2vRw9RREOIECbOfKqfV6Q=; b=aHlbfrDmgRc5slkWA+az1NAv1nBjGs2Qk0sSk7GQTfivz1bqzO0fzjQxqsNK5wmQzh ormzmtOnXSEgdHfsERvfVsauInDfCSH2rSS2BYe2hzLhvC/ycn8DsXJrHGgBL4+ExM6p +8i08FDx8Ft3Bk4eg2uPKxpsm5MiH4Jo5Oi+nGdB90a983F3kdEhV0Gpa5La52Ek81sU 2Fk9FNFCuJo4Z2wJ2p8cW9CYy1/tP1fq7JVMywzLiYBGnThmhFaWz7sdtOb4kOGAHLFG wLBDrsSFcXhJIS9MWmHAkGbpO58PftQKcMBOOFVE8eMObnWBUHpZqjVyRs69jZW3D2C1 lpoA== X-Gm-Message-State: AOJu0YyydEsL5D9Lie0RQv0fjQOP5pZhsak5LVqrQo8zO+hDX909htMg X0BzOC/4SU3321FHXoZa+a7f8XgJ58U= X-Received: by 2002:a17:902:ce84:b0:1cf:b7ea:fea with SMTP id f4-20020a170902ce8400b001cfb7ea0feamr8629251plg.1.1701095488835; Mon, 27 Nov 2023 06:31:28 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:28 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 16/17] nilfs2: Convert nilfs_prepare_chunk() and nilfs_commit_chunk() to folios Date: Mon, 27 Nov 2023 23:30:35 +0900 Message-Id: <20231127143036.2425-17-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:33:20 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728026041368860 X-GMAIL-MSGID: 1783728026041368860 From: "Matthew Wilcox (Oracle)" All callers now have a folio, so convert these two functions. Saves one call to compound_head() in unlock_page(). [ konishi.ryusuke: resolved conflicts in nilfs_{set_link,delete_entry} ] Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/dir.c | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index ff0a009a292f..bc846b904b68 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -78,33 +78,32 @@ static unsigned int nilfs_last_byte(struct inode *inode, unsigned long page_nr) return last_byte; } -static int nilfs_prepare_chunk(struct page *page, unsigned int from, +static int nilfs_prepare_chunk(struct folio *folio, unsigned int from, unsigned int to) { - loff_t pos = page_offset(page) + from; + loff_t pos = folio_pos(folio) + from; - return __block_write_begin(page, pos, to - from, nilfs_get_block); + return __block_write_begin(&folio->page, pos, to - from, nilfs_get_block); } -static void nilfs_commit_chunk(struct page *page, - struct address_space *mapping, - unsigned int from, unsigned int to) +static void nilfs_commit_chunk(struct folio *folio, + struct address_space *mapping, size_t from, size_t to) { struct inode *dir = mapping->host; - loff_t pos = page_offset(page) + from; - unsigned int len = to - from; - unsigned int nr_dirty, copied; + loff_t pos = folio_pos(folio) + from; + size_t copied, len = to - from; + unsigned int nr_dirty; int err; - nr_dirty = nilfs_page_count_clean_buffers(page, from, to); - copied = block_write_end(NULL, mapping, pos, len, len, page, NULL); + nr_dirty = nilfs_page_count_clean_buffers(&folio->page, from, to); + copied = block_write_end(NULL, mapping, pos, len, len, &folio->page, NULL); if (pos + copied > dir->i_size) i_size_write(dir, pos + copied); if (IS_DIRSYNC(dir)) nilfs_set_transaction_flag(NILFS_TI_SYNC); err = nilfs_set_file_dirty(dir, nr_dirty); WARN_ON(err); /* do not happen */ - unlock_page(page); + folio_unlock(folio); } static bool nilfs_check_folio(struct folio *folio, char *kaddr) @@ -409,11 +408,11 @@ void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, int err; folio_lock(folio); - err = nilfs_prepare_chunk(&folio->page, from, to); + err = nilfs_prepare_chunk(folio, from, to); BUG_ON(err); de->inode = cpu_to_le64(inode->i_ino); nilfs_set_de_type(de, inode); - nilfs_commit_chunk(&folio->page, mapping, from, to); + nilfs_commit_chunk(folio, mapping, from, to); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); } @@ -485,7 +484,7 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) got_it: from = offset_in_folio(folio, de); to = from + rec_len; - err = nilfs_prepare_chunk(&folio->page, from, to); + err = nilfs_prepare_chunk(folio, from, to); if (err) goto out_unlock; if (de->inode) { @@ -500,7 +499,7 @@ int nilfs_add_link(struct dentry *dentry, struct inode *inode) memcpy(de->name, name, namelen); de->inode = cpu_to_le64(inode->i_ino); nilfs_set_de_type(de, inode); - nilfs_commit_chunk(&folio->page, folio->mapping, from, to); + nilfs_commit_chunk(folio, folio->mapping, from, to); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); nilfs_mark_inode_dirty(dir); /* OFFSET_CACHE */ @@ -542,12 +541,12 @@ int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct folio *folio) if (pde) from = (char *)pde - kaddr; folio_lock(folio); - err = nilfs_prepare_chunk(&folio->page, from, to); + err = nilfs_prepare_chunk(folio, from, to); BUG_ON(err); if (pde) pde->rec_len = nilfs_rec_len_to_disk(to - from); dir->inode = 0; - nilfs_commit_chunk(&folio->page, mapping, from, to); + nilfs_commit_chunk(folio, mapping, from, to); inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); out: return err; @@ -568,7 +567,7 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent) if (IS_ERR(folio)) return PTR_ERR(folio); - err = nilfs_prepare_chunk(&folio->page, 0, chunk_size); + err = nilfs_prepare_chunk(folio, 0, chunk_size); if (unlikely(err)) { folio_unlock(folio); goto fail; @@ -589,7 +588,7 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent) memcpy(de->name, "..\0", 4); nilfs_set_de_type(de, inode); kunmap_local(kaddr); - nilfs_commit_chunk(&folio->page, mapping, 0, chunk_size); + nilfs_commit_chunk(folio, mapping, 0, chunk_size); fail: folio_put(folio); return err; From patchwork Mon Nov 27 14:30:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryusuke Konishi X-Patchwork-Id: 170204 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp3165571vqx; Mon, 27 Nov 2023 06:33:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IFH5mbByRrGI/Bpy179/m4ZdhLg3oo1Ras6rAyrepGlHzHN39+0xzcCFYwCfrvzIG13+V22 X-Received: by 2002:a05:6808:238f:b0:3ae:126b:8bfc with SMTP id bp15-20020a056808238f00b003ae126b8bfcmr16300626oib.4.1701095608173; Mon, 27 Nov 2023 06:33:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701095608; cv=none; d=google.com; s=arc-20160816; b=NoVH9dmjv+1GKzcGcFUJSsH8Jf/sqGw9V5opqUm+2aFs7+SABJnW+zPp0+Eh9sckct BZon3dXAoQBFIX0/2jkl91vAfMt5abO0Yo6MYuqBRkWpP8aYNqzdUrVzJHuNMEJVQen5 7HpZ6NGAi/TCgA2qr+6XI0xaoiu4ER62OlFIsSaDxAwsh4a6LJqR3SP6QjGTMSc3lL5/ TkrP0jq8QXeDqF8lV7C6hU3IihBTq3vaPZoL8WPg1FhNvo1YMBJFdAreKKxOnzASSi3p kt/DBhy2TPwmEw5kNYM59Y8H7yUxOeVvOTP2zuqoG2SEiT8GRWwf2jeHwIp7y7+KdKbi HCGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=YzhEI8PX9uWduVePnYqK/AxUKd745WWyGgZ0XvSFp+U=; fh=c4gLbwT9pvttlQWxFI2VesWIZ95B4IQ3bBh75IOono4=; b=r7ln4766CdK3yys79IcI5LzkmU7vBx+mDWb5o58na504paWOXcpxPGz/WPWM+0mpaB zzH+pPbLZJXk3bqH4NVFpCB55YayssUD0bWxZ6BIYJmm/uZ35C7yAuYMwtaB7Qqu0Npv 2bCHqVvVUFFD+/cQ3ZXIoGQBNscUW9V+o3oqlUXncYB9dQ6bktII0Lv+q1EKuCdt6hMG Qkyhz+VunNpIdC4BPTAWrgAT6V6p+vi57tuA+3mu1yFcdjZHpK/o46C7kcfTYzYOA4EA D18SJE2fDCBf3sC9xpf3qt5ZsPd3axX0Kv9MOnCtxYSrAwx3ZO8wpKO8uf1Pu7EohNUt vOeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ji9j8nAx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id ep3-20020a056808444300b003b84fac05d2si3725390oib.56.2023.11.27.06.33.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:33:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ji9j8nAx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id AB1B7805E41B; Mon, 27 Nov 2023 06:33:25 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233968AbjK0Ocq (ORCPT + 99 others); Mon, 27 Nov 2023 09:32:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41858 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233287AbjK0Ob0 (ORCPT ); Mon, 27 Nov 2023 09:31:26 -0500 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B5F53D41; Mon, 27 Nov 2023 06:31:32 -0800 (PST) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1cfaaa79766so21655055ad.3; Mon, 27 Nov 2023 06:31:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701095492; x=1701700292; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YzhEI8PX9uWduVePnYqK/AxUKd745WWyGgZ0XvSFp+U=; b=ji9j8nAxQqzvOX147sKXHx8lju59AiZvFm2DRBZy5RZt+0E3kSqwVWewBIRsgq8ZMT kiTG+8c7oKmYUlCsjSgLp3wuAgmCwW0XYnrR/oH/XDE6IkKhtBB9HiE+KEn8jAyqBa8M 4I4uYsLhWln4bLTz7GSXZhWJ1oAmAwBNv5Pcl5rdL/NVGVZfaYYCOQlCrjeC2AwfYxWG mopkjg0D/30Rs+9TLz76fa4ny+3tta/NPKSS6uZv+yUTlzszvD68M2Tlg/JgKheBfj8c enEt0gGRUfLMQnHwqDonU2W2337qnpng2obHbzej3vZ/h9vTcUMzQODk8lBSJ3W/Sz5T vD2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701095492; x=1701700292; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YzhEI8PX9uWduVePnYqK/AxUKd745WWyGgZ0XvSFp+U=; b=RQjQcbVayqGyAjrHsdM5phnE5j+cs4g6rdkJn7sfoqZ+Oxp1Kc4ATBRQlfpj/Vf4zi vK00Q5TekXL9F2qTEzNcFDngvYOoDVZmkMlkJnXCG/ge6fTEc6OZVkMUa+6OFzVAB13Y yYE1HGHPkdyo58gPWRStpoj0MLEfkbbt+ZBnQubvTMmppQCeWaGxDX2tRCD45F+2Ez27 FDi976WAdo4P+Q1ub4yjgNeqER7iHQGhLnq9uZsxoBZgFJy1LlNXKTiyxhM26MnBCDDq bZbAWK1US8duVNX1+E3T5g97WgE4AwR3rknBg1nhkAdqinE4w+1/pM1uhZ/Mrakz9M1s HrlA== X-Gm-Message-State: AOJu0YxVZ1SqzNolxGkToyrEttziZaeq2YM1U5FN3tbC8NVCeTEe0N06 jAskTaDxA2iTfaYV+F0hgMU= X-Received: by 2002:a17:902:ced0:b0:1cc:ae1a:b0b8 with SMTP id d16-20020a170902ced000b001ccae1ab0b8mr15658483plg.44.1701095492166; Mon, 27 Nov 2023 06:31:32 -0800 (PST) Received: from carrot.. (i60-34-119-11.s42.a014.ap.plala.or.jp. [60.34.119.11]) by smtp.gmail.com with ESMTPSA id a5-20020a170902ee8500b001cf51972586sm8302784pld.292.2023.11.27.06.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 06:31:31 -0800 (PST) From: Ryusuke Konishi To: Andrew Morton Cc: linux-nilfs@vger.kernel.org, Matthew Wilcox , linux-kernel@vger.kernel.org Subject: [PATCH 17/17] nilfs2: Convert nilfs_page_bug() to nilfs_folio_bug() Date: Mon, 27 Nov 2023 23:30:36 +0900 Message-Id: <20231127143036.2425-18-konishi.ryusuke@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231127143036.2425-1-konishi.ryusuke@gmail.com> References: <20231127143036.2425-1-konishi.ryusuke@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, 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 agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Mon, 27 Nov 2023 06:33:25 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783728028073621329 X-GMAIL-MSGID: 1783728028073621329 From: "Matthew Wilcox (Oracle)" All callers have a folio now, so convert it. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Ryusuke Konishi --- fs/nilfs2/btnode.c | 4 ++-- fs/nilfs2/page.c | 25 +++++++++++++------------ fs/nilfs2/page.h | 6 +++--- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c index 1204dd06ead8..0131d83b912d 100644 --- a/fs/nilfs2/btnode.c +++ b/fs/nilfs2/btnode.c @@ -190,7 +190,7 @@ int nilfs_btnode_prepare_change_key(struct address_space *btnc, retry: /* BUG_ON(oldkey != obh->b_folio->index); */ if (unlikely(oldkey != ofolio->index)) - NILFS_PAGE_BUG(&ofolio->page, + NILFS_FOLIO_BUG(ofolio, "invalid oldkey %lld (newkey=%lld)", (unsigned long long)oldkey, (unsigned long long)newkey); @@ -246,7 +246,7 @@ void nilfs_btnode_commit_change_key(struct address_space *btnc, if (nbh == NULL) { /* blocksize == pagesize */ ofolio = obh->b_folio; if (unlikely(oldkey != ofolio->index)) - NILFS_PAGE_BUG(&ofolio->page, + NILFS_FOLIO_BUG(ofolio, "invalid oldkey %lld (newkey=%lld)", (unsigned long long)oldkey, (unsigned long long)newkey); diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c index 94e11bcee05b..5c2eba1987bd 100644 --- a/fs/nilfs2/page.c +++ b/fs/nilfs2/page.c @@ -150,29 +150,30 @@ bool nilfs_folio_buffers_clean(struct folio *folio) return true; } -void nilfs_page_bug(struct page *page) +void nilfs_folio_bug(struct folio *folio) { + struct buffer_head *bh, *head; struct address_space *m; unsigned long ino; - if (unlikely(!page)) { - printk(KERN_CRIT "NILFS_PAGE_BUG(NULL)\n"); + if (unlikely(!folio)) { + printk(KERN_CRIT "NILFS_FOLIO_BUG(NULL)\n"); return; } - m = page->mapping; + m = folio->mapping; ino = m ? m->host->i_ino : 0; - printk(KERN_CRIT "NILFS_PAGE_BUG(%p): cnt=%d index#=%llu flags=0x%lx " + printk(KERN_CRIT "NILFS_FOLIO_BUG(%p): cnt=%d index#=%llu flags=0x%lx " "mapping=%p ino=%lu\n", - page, page_ref_count(page), - (unsigned long long)page->index, page->flags, m, ino); + folio, folio_ref_count(folio), + (unsigned long long)folio->index, folio->flags, m, ino); - if (page_has_buffers(page)) { - struct buffer_head *bh, *head; + head = folio_buffers(folio); + if (head) { int i = 0; - bh = head = page_buffers(page); + bh = head; do { printk(KERN_CRIT " BH[%d] %p: cnt=%d block#=%llu state=0x%lx\n", @@ -258,7 +259,7 @@ int nilfs_copy_dirty_pages(struct address_space *dmap, folio_lock(folio); if (unlikely(!folio_test_dirty(folio))) - NILFS_PAGE_BUG(&folio->page, "inconsistent dirty state"); + NILFS_FOLIO_BUG(folio, "inconsistent dirty state"); dfolio = filemap_grab_folio(dmap, folio->index); if (unlikely(IS_ERR(dfolio))) { @@ -268,7 +269,7 @@ int nilfs_copy_dirty_pages(struct address_space *dmap, break; } if (unlikely(!folio_buffers(folio))) - NILFS_PAGE_BUG(&folio->page, + NILFS_FOLIO_BUG(folio, "found empty page in dat page cache"); nilfs_copy_folio(dfolio, folio, true); diff --git a/fs/nilfs2/page.h b/fs/nilfs2/page.h index 968b311d265b..7e1a2c455a10 100644 --- a/fs/nilfs2/page.h +++ b/fs/nilfs2/page.h @@ -37,7 +37,7 @@ struct buffer_head *nilfs_grab_buffer(struct inode *, struct address_space *, void nilfs_forget_buffer(struct buffer_head *); void nilfs_copy_buffer(struct buffer_head *, struct buffer_head *); bool nilfs_folio_buffers_clean(struct folio *); -void nilfs_page_bug(struct page *); +void nilfs_folio_bug(struct folio *); int nilfs_copy_dirty_pages(struct address_space *, struct address_space *); void nilfs_copy_back_pages(struct address_space *, struct address_space *); @@ -49,7 +49,7 @@ unsigned long nilfs_find_uncommitted_extent(struct inode *inode, sector_t start_blk, sector_t *blkoff); -#define NILFS_PAGE_BUG(page, m, a...) \ - do { nilfs_page_bug(page); BUG(); } while (0) +#define NILFS_FOLIO_BUG(folio, m, a...) \ + do { nilfs_folio_bug(folio); BUG(); } while (0) #endif /* _NILFS_PAGE_H */