Received: by 2002:a05:7412:e794:b0:fa:551:50a7 with SMTP id o20csp1956819rdd; Thu, 11 Jan 2024 14:59:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IFVlhYcJSFjkcemMGwv3XBP4DYn8bOWnOVDEVHr7p1F5+1NvGHlhz2CEh+X4671yPqaddt7 X-Received: by 2002:a17:90b:314a:b0:28c:91a5:1e33 with SMTP id ip10-20020a17090b314a00b0028c91a51e33mr564224pjb.12.1705013949643; Thu, 11 Jan 2024 14:59:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705013949; cv=none; d=google.com; s=arc-20160816; b=OvZX3P4BPNVQzzsxqcQ2ZCiLhwutQw6A36RlyrPcZ4FxogJk3h4HK4VJSxkaQZnqu4 OfXkSYjfq9JSFuaqPenOBkZqU0+hlqF/0pj5NFMkKBU7eNOZgI1s5N9A5Im2vRtTz97y rAaH24SOc3glLhFJXjAtcHtFnAJObHWLAl19XlQwfONGyWR6qqbybIh6ZHBHLs4sNRy4 X2OAVbdRfjX0tc+H3WyLgBVcgju3enyGvlE9cbjbcuI6QV1i5YV9bhWU5+xqqUrvN3lU WXtD/Oxtbw9zoW0/K2AwcfqW07pg1pcYfkIc9eZdso/nLj8ZTqwcq5eyl5mRWAE+ghCb 8hBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:dkim-signature :dkim-signature:dkim-signature; bh=icfpDa9cQWSMCJ3qgTlqcSwaA2iZOw9bqJdb6XgXsH8=; fh=txLUcZWR0Mn+AOInn8hb4p5ZPQWLqJuy4UySlPkPPxE=; b=hCq2fOS51mJw613ungV47BW636Jw/PiUEnu6A3FXozj9Isb/5yrDLZkRP22HH67VDv Z2Guy2OXKPRitWraPCsuJbC1NhH3Mgj0oTVPzEbKKPuK2Lv6ErJs+JskHEXl8mfEdtLo CWIWn3zNtCsH6nDn9Ec+sstbgqRznYBUU7b0Hxn+GiG2ETNNNf/1IxQyzNdiHc65y+TY BeqsEJ7916mmcAfKJsHcjUM6v79jIdLLlLB//x8dvFMyOBFCkrd/GFuD5Qu5etJV+b1y SFYOdbZTCAlrIRgGXp6NZBmqKoiVcXBvIVouezQ38EJ8I2xBaalm7xkNgOVq10n5V7o0 RHJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mZDO2nNr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=mBc57u00; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mZDO2nNr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-ext4+bounces-779-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-ext4+bounces-779-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id kk8-20020a170903070800b001d4bc8b662asi1891680plb.230.2024.01.11.14.59.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jan 2024 14:59:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4+bounces-779-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mZDO2nNr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=mBc57u00; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mZDO2nNr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-ext4+bounces-779-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-ext4+bounces-779-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 5333A288050 for ; Thu, 11 Jan 2024 22:59:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BC6E75914D; Thu, 11 Jan 2024 22:58:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="mZDO2nNr"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="mBc57u00"; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="mZDO2nNr"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="mBc57u00" X-Original-To: linux-ext4@vger.kernel.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D412239FC5; Thu, 11 Jan 2024 22:58:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.de Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A5CC52224C; Thu, 11 Jan 2024 22:58:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1705013933; h=from:from:reply-to: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=icfpDa9cQWSMCJ3qgTlqcSwaA2iZOw9bqJdb6XgXsH8=; b=mZDO2nNrpqHQMxg8euhKqdOuPjYCb/FFILlqbK6LTximzV6F67BWOOzkHex/xiTWBG6OJY VhwGJe74+sdDs4oijT0DIFoI/cPpXqmRL/X2k51HMo0N5CXgmUnrrj4fPskMK4Ju1Ekn2I 9Dmhh0WdRNLPFzPLIIqnC17jRY+d+wY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1705013933; h=from:from:reply-to: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=icfpDa9cQWSMCJ3qgTlqcSwaA2iZOw9bqJdb6XgXsH8=; b=mBc57u00PH/hw+n8mGU5jVB7oke0VDIvO1byYPDa/eZclL4jSOHDQBD1kBOOa2QZVFUf3+ 2JN/Ek7GE5eO0dBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1705013933; h=from:from:reply-to: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=icfpDa9cQWSMCJ3qgTlqcSwaA2iZOw9bqJdb6XgXsH8=; b=mZDO2nNrpqHQMxg8euhKqdOuPjYCb/FFILlqbK6LTximzV6F67BWOOzkHex/xiTWBG6OJY VhwGJe74+sdDs4oijT0DIFoI/cPpXqmRL/X2k51HMo0N5CXgmUnrrj4fPskMK4Ju1Ekn2I 9Dmhh0WdRNLPFzPLIIqnC17jRY+d+wY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1705013933; h=from:from:reply-to: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=icfpDa9cQWSMCJ3qgTlqcSwaA2iZOw9bqJdb6XgXsH8=; b=mBc57u00PH/hw+n8mGU5jVB7oke0VDIvO1byYPDa/eZclL4jSOHDQBD1kBOOa2QZVFUf3+ 2JN/Ek7GE5eO0dBw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0B5DB13946; Thu, 11 Jan 2024 22:58:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id RHP+MKxyoGVeLwAAD6G6ig (envelope-from ); Thu, 11 Jan 2024 22:58:52 +0000 From: Gabriel Krisman Bertazi To: viro@zeniv.linux.org.uk, ebiggers@kernel.org, jaegeuk@kernel.org, tytso@mit.edu Cc: linux-f2fs-devel@lists.sourceforge.net, linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, amir73il@gmail.com, Gabriel Krisman Bertazi Subject: [PATCH v3 03/10] fscrypt: Drop d_revalidate for valid dentries during lookup Date: Thu, 11 Jan 2024 19:58:09 -0300 Message-ID: <20240111225816.18117-4-krisman@suse.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240111225816.18117-1-krisman@suse.de> References: <20240111225816.18117-1-krisman@suse.de> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Authentication-Results: smtp-out1.suse.de; none X-Spamd-Result: default: False [4.41 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; R_MISSING_CHARSET(2.50)[]; MIME_GOOD(-0.10)[text/plain]; TO_MATCH_ENVRCPT_ALL(0.00)[]; BROKEN_CONTENT_TYPE(1.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCPT_COUNT_SEVEN(0.00)[9]; MID_CONTAINS_FROM(1.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_CC(0.00)[lists.sourceforge.net,vger.kernel.org,gmail.com,suse.de]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-0.49)[79.74%] X-Spam-Level: **** X-Spam-Score: 4.41 X-Spam-Flag: NO Unencrypted and encrypted-dentries where the key is available don't need to be revalidated with regards to fscrypt, since they don't go stale from under VFS and the key cannot be removed for the encrypted case without evicting the dentry. Mark them with d_set_always_valid, to avoid unnecessary revalidation, in preparation to always configuring d_op through sb->s_d_op. Since the filesystem might have other features that require revalidation, only apply this optimization if the d_revalidate handler is fscrypt_d_revalidate itself. Signed-off-by: Gabriel Krisman Bertazi --- fs/crypto/hooks.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fs/crypto/hooks.c b/fs/crypto/hooks.c index 41df986d1230..53381acc83e7 100644 --- a/fs/crypto/hooks.c +++ b/fs/crypto/hooks.c @@ -127,6 +127,15 @@ int fscrypt_prepare_lookup_dentry(struct inode *dir, spin_lock(&dentry->d_lock); if (nokey_name) { dentry->d_flags |= DCACHE_NOKEY_NAME; + } else if (dentry->d_flags & DCACHE_OP_REVALIDATE && + dentry->d_op->d_revalidate == fscrypt_d_revalidate) { + /* + * Unencrypted dentries and encrypted dentries where the + * key is available are always valid from fscrypt + * perspective. Avoid the cost of calling + * fscrypt_d_revalidate unnecessarily. + */ + dentry->d_flags &= ~DCACHE_OP_REVALIDATE; } spin_unlock(&dentry->d_lock); -- 2.43.0