From patchwork Sun Aug 27 13:28:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hao Xu X-Patchwork-Id: 13367214 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 655EAC83F1C for ; Sun, 27 Aug 2023 13:34:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0393F280007; Sun, 27 Aug 2023 09:34:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F2BF48E0001; Sun, 27 Aug 2023 09:34:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E1AB4280007; Sun, 27 Aug 2023 09:34:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D428C8E0001 for ; Sun, 27 Aug 2023 09:34:43 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id ABE4540157 for ; Sun, 27 Aug 2023 13:34:43 +0000 (UTC) X-FDA: 81169979646.26.1F2E2D8 Received: from out-248.mta1.migadu.com (out-248.mta1.migadu.com [95.215.58.248]) by imf09.hostedemail.com (Postfix) with ESMTP id 07D0614000E for ; Sun, 27 Aug 2023 13:34:41 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=WXr39RUh; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf09.hostedemail.com: domain of hao.xu@linux.dev designates 95.215.58.248 as permitted sender) smtp.mailfrom=hao.xu@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693143282; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=X5RgYva0uI/YfpMcRAQXXXC0hBNumZORbEO2XQnoCOE=; b=SdgEdMqLs5KY0mzGW1oUwKaMDhJtoTLolxo2Bx7DpbUgyv9bOnX7kih2cjgFgTFlVIDsg0 zvKNSVVl7dYvZke3riSNiVgV7hydqQ6RjC+Fx7/NjDFadU4Auy1+8FFyIZdGrZotlxFpJA kZgELk5t4dZhctwFeajDDXLNPyzqSYk= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=WXr39RUh; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf09.hostedemail.com: domain of hao.xu@linux.dev designates 95.215.58.248 as permitted sender) smtp.mailfrom=hao.xu@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693143282; a=rsa-sha256; cv=none; b=cVZ/FswJsgptbRypdn9/KieY0yzZZcw3bYTAPvjFWH3VdCgXfSTsw0NOPJpzNqyy/jg4Yi zbIGq+ygRy+N1RwqPig4NZW8uQP//ZM5Ap8wgkUKt7fwW4gdYHaSKgYfAzkFiNNSbUMIu7 0IsZU4GY+7+3EQe2NbkPvR0rBi6PaNs= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1693143280; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X5RgYva0uI/YfpMcRAQXXXC0hBNumZORbEO2XQnoCOE=; b=WXr39RUhGjmbBKUuqHmNng9tnfRreU8ks2ZtLjekYh53jHM4CnAQcsfBzBDABn1mkShot8 ZX46/udLE4Y2+Gp8W4OGBBchscS3B/zTnSSJs8rd29bz5YyB6Ia5W1tSVuXmmsCsWASJVj OhE3i3OIyl7cEamjJGJ1G7EdndXC44c= From: Hao Xu To: io-uring@vger.kernel.org, Jens Axboe Cc: Dominique Martinet , Pavel Begunkov , Christian Brauner , Alexander Viro , Stefan Roesch , Clay Harris , Dave Chinner , "Darrick J . Wong" , linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-cachefs@redhat.com, ecryptfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-unionfs@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, linux-btrfs@vger.kernel.org, codalist@coda.cs.cmu.edu, linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com, linux-mm@kvack.org, linux-nilfs@vger.kernel.org, devel@lists.orangefs.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-mtd@lists.infradead.org, Wanpeng Li Subject: [PATCH 08/11] vfs: move file_accessed() to the beginning of iterate_dir() Date: Sun, 27 Aug 2023 21:28:32 +0800 Message-Id: <20230827132835.1373581-9-hao.xu@linux.dev> In-Reply-To: <20230827132835.1373581-1-hao.xu@linux.dev> References: <20230827132835.1373581-1-hao.xu@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Stat-Signature: fxp1n1p1oj71jndf3jhe9qf8cikye7q1 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 07D0614000E X-HE-Tag: 1693143281-7662 X-HE-Meta: U2FsdGVkX18LZe1/Uet1nfD4qbwc2jiOBDMriobD1LKmen0EBDbi/MPmLoBtgTqRPLyffzt8y7ccL/0VH7DVWGZi0EmGIe1ooRZhmRWVOE9eekq4PvxHkERg6c0WOlK8XFCgBHEycmYDpoGIuZdcPocqlRBJicD1oDb+B8Rfx+YSnIn0KigdF2YvQVsuO7rGG57u7w9H6gqqNS37N7XksSx9bojtOY8UpG9GSOmThXKUxj7ULLnB1RxuKfxSA3rGAOIp/9HGZSGsT+5PLr0QySL722g0sdLSESJqxIFfDcyQRBoeVGMdRYshLsZG8JCtkfqhXKgFslDFaNESthOGY8d28zt7xFfCr7A2fjG0n0+XeFlCApzR13SOSU0b59w7QBB0ShPV89bu5AvPvrRUJ3Q+n7x+iqaQNpFSaVC0Nd+ze/rqexfTZn00pYW4JgyoZ2RSlOipMT4ifXpNFq6qu0g9LxOt1SsspZBYLUzNLVpbc6ouogGKdVn981ybKApYqLWxNsmGp5xRhSHr4O5nTUtEqGb6Q/2l70LbNgSaaCiDo7CeKGO0jDJRn9d8CZFzR0+wArH1am5j45kuGyGUVWyuDGwWovvrLR5wuTf4IEgWH4HySsjUFclw2BgVQvswAJpzIF69wN/ANzhdd0u3ZfRTdCrRW4ZNbydzRvPar8xosevcezSirE762ze0tpp2YrnqjAYf9C03WrUszAVQjNSE5wnMDRQbvYJ7QWkyeZGi38BynaXXc3M7NYYKTzH+gRphE5LJgC9peVw+ZxARpWZy2Vzp4UNO6UfWgETeUZDsbNi38zo4Wj/C5w1m8iN3DMtHQVr5y22IMSvQ0lO1AGyM1gCF0HAjtJiTUYdDt0rBmW9z0yVYEgGAy96XeEllt+fFW+DEtx5z0vmoPOCXd/JuQ2Hjj/sSaf4+u4cc9i2BWWu+EwhR3T4Y0iYtWbbhs0TnC4aTNs5anJd2VEd 1M6BHaAd zIKr9mignvuq3F8aiPfuf2Gg7p9I8VxH6SxNXcMl2AUUMUdHYFYNN6Xks61GS6BICLs+9MtYNdj8uiX6Va/DJqUo++CDmd3EwDOMKRh5GAoAl1w0wrFQv7bER+9WpdBEdfsHtnLW9bZhX6KYqGWuL5y35TshdnHVuUVpJRF9FcYAa91JfSM3/+/n//HcerG+iAwM66trX7pxiJPfW0E4hR0oQWWPyBuh0nLml8VaK5OEO9pwYJq0O4ql0Sh4nRqQ2fJsoKHqCjaF69Cac4cB0WvTR8dOhwBZynZkJOpdBrfBTnnSyUIdnXOoSZKfBxWj75aZScbbsFGpPSG0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Hao Xu Move file_accessed() to the beginning of iterate_dir() so that we don't need to rollback all the work done when file_accessed() returns -EAGAIN at the end of getdents. Signed-off-by: Hao Xu --- fs/readdir.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fs/readdir.c b/fs/readdir.c index 2f4c9c663a39..6469f076ba6e 100644 --- a/fs/readdir.c +++ b/fs/readdir.c @@ -61,6 +61,10 @@ int iterate_dir(struct file *file, struct dir_context *ctx) res = -ENOENT; if (!IS_DEADDIR(inode)) { + res = file_accessed(file, ctx->flags & DIR_CONTEXT_F_NOWAIT); + if (res == -EAGAIN) + goto out_unlock; + ctx->pos = file->f_pos; if (shared) res = file->f_op->iterate_shared(file, ctx); @@ -68,8 +72,9 @@ int iterate_dir(struct file *file, struct dir_context *ctx) res = file->f_op->iterate(file, ctx); file->f_pos = ctx->pos; fsnotify_access(file); - file_accessed(file, ctx->flags & DIR_CONTEXT_F_NOWAIT); } + +out_unlock: if (shared) inode_unlock_shared(inode); else