Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1919782ybt; Thu, 2 Jul 2020 18:04:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz5D8cvBFSQ5LJlBhgM4tA4IkBD6ke8SBtjzhBZAFTO3FtXtzJWRWtq2UR6BNCSGgRPF3SH X-Received: by 2002:a17:906:2c02:: with SMTP id e2mr14480446ejh.64.1593738251335; Thu, 02 Jul 2020 18:04:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593738251; cv=none; d=google.com; s=arc-20160816; b=QM4/qdzr5dzT2+LtflXRKeKi6tDBNtDRFdDkrbRvkKwW42eILwit3w4rbdAdzk/U/o ySgaLv5ro0FPnh6USRzWpCdS0clWY818jtQuK6828Cct+rsZlucO6vZ6f+3srQWxeF1+ 8JsaqEoihqvhaN9487jSysgBL0mdQG5ImfCj9GaLBLtbsW+VvqIqs1D7HZ/lie+oUak1 vpR+4ykr8zO9poL0m9S9/snXY8L3e7iPrpCGNhp9P7ecojADNxhMCjke6INl4m2zJvop onwjDDHgjU6MakWhgX3kGTlebaDCzLO5kQhesj0s7uoQ8ijyBBs6cn6kIMZT1KpcFTLT J1Bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=+0u5TnXqElmJHIUbIwfyg0UnTaWODXR+GC+hM1QsUz4=; b=sfJsf11XCErcaIXQm0EZ9D7SCw0MazncOnKxzeUhV7zna47S6EFjbBqVTKbOicBjJI DcFXv1wbLrxJlUigiFkQIkibjfSAPW9MjIBKHOH1RlLBfhAkqXWcr4yaHWHdB7Bkg8W2 eN7dgFm0PCSwiA7+JDibq+OV1APo3pfFqdoZhnz9HAzcNj9AKiUb7MAnXJ+RtCBsBRPk bJd+xRPkk5gKKMeNN5jkOE4WeXUOED2RMh3J1G5AqOKraC0QnGvqcB8YSqeuPWPrrzBH yuWeqmQv24XjCN+N5prdFD14EPyFrOtcBaZTwzNoeFVB/X7/qYRBLE8bF8sZUvvu9oq+ mr6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=oOqDzf9U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cf17si7045336edb.488.2020.07.02.18.03.47; Thu, 02 Jul 2020 18:04:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=oOqDzf9U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726317AbgGCBBv (ORCPT + 99 others); Thu, 2 Jul 2020 21:01:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726245AbgGCBBu (ORCPT ); Thu, 2 Jul 2020 21:01:50 -0400 Received: from mail-ot1-x343.google.com (mail-ot1-x343.google.com [IPv6:2607:f8b0:4864:20::343]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15871C08C5DF for ; Thu, 2 Jul 2020 18:01:50 -0700 (PDT) Received: by mail-ot1-x343.google.com with SMTP id h13so4972995otr.0 for ; Thu, 02 Jul 2020 18:01:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+0u5TnXqElmJHIUbIwfyg0UnTaWODXR+GC+hM1QsUz4=; b=oOqDzf9UhdHQiWfizW6yxKYuiXycU3fWLPwduq8AH7hV/7gSiEHYYCaf1R8F2ctgqG Ctt5zAILp2PI93b4Q9sIqk+bct1cHbzT8Yw9+IcOxwWKgWbCaachSWq9et+Yf8XtLZAo 4PfjLQ2EBIkG8ZapbfVu6Be6/Vu8TcYpCdwMqVXiYNjxd4suP9wdDfoO3oqnw035dU8n /R6DDvFq0BMQXLdQ3Ov60bKRizaMZFmcKMO6VN+JDo/z+/DFAUQ/rBIJ0OdRJmHbICOW lVBzFxBYsXOkdcGMH5/fGPjcJF+UWV/JV1fhleZLJ4KwG6qXoSH5MyKRsJ+/bO2HGygC mIWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+0u5TnXqElmJHIUbIwfyg0UnTaWODXR+GC+hM1QsUz4=; b=duIA9saJe9TL33uI3TRfM74N8IudZYKOPdDjGA0e1QIhsj4dTNMjpfE7PvmzXlVGNv uemm9LmhtrikU6Ms+QcEMbMt2DtbHksrX7WsFw6ri5wWTecjgptFs3zcVo4u3yCKtB5M eQU/oo/k4Pc5Zl6n/eacT/9VbxBRIiIec8tTVWQyJgN6ie8qXG7t13dley50w/XQl8Hi +ZoQgSLhS5FTBb1X0HqzT4Oy4Fg2OOoNjN381ecr/28CvCaJolAq3XR6G8ZXAnDdgp66 QqHMnRpL30fu1apCHVNS5A+dBEityimDL/Bu5pBSr2acVqQCjfP0lNFvJz6Y9l+beKel hAmg== X-Gm-Message-State: AOAM533PDhtaYtwt17yYHxu4uQM/N0vjDaAoBixd/iu7v8aND3ocgdw2 pf/XZG51c+kLeGyy0YnMKQMfwjesUgt8aq1Klxm+Og== X-Received: by 2002:a9d:6d98:: with SMTP id x24mr18707612otp.93.1593738109138; Thu, 02 Jul 2020 18:01:49 -0700 (PDT) MIME-Version: 1.0 References: <20200624043341.33364-1-drosen@google.com> <20200624043341.33364-3-drosen@google.com> <20200624055707.GG844@sol.localdomain> In-Reply-To: <20200624055707.GG844@sol.localdomain> From: Daniel Rosenberg Date: Thu, 2 Jul 2020 18:01:37 -0700 Message-ID: Subject: Re: [PATCH v9 2/4] fs: Add standard casefolding support To: Eric Biggers Cc: "Theodore Ts'o" , linux-ext4@vger.kernel.org, Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net, linux-fscrypt@vger.kernel.org, Alexander Viro , Richard Weinberger , linux-mtd@lists.infradead.org, Andreas Dilger , Jonathan Corbet , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Gabriel Krisman Bertazi , kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 23, 2020 at 10:57 PM Eric Biggers wrote: > > Note that the '!IS_ENCRYPTED(dir) || fscrypt_has_encryption_key(dir)' check can > be racy, because a process can be looking up a no-key token in a directory while > concurrently another process initializes the directory's ->i_crypt_info, causing > fscrypt_has_encryption_key(dir) to suddenly start returning true. > > In my rework of filename handling in f2fs, I actually ended up removing all > calls to needs_casefold(), thus avoiding this race. f2fs now decides whether > the name is going to need casefolding early on, in __f2fs_setup_filename(), > where it knows in a race-free way whether the filename is a no-key token or not. > > Perhaps ext4 should work the same way? It did look like there would be some > extra complexity due to how the ext4 directory hashing works in comparison to > f2fs's, but I haven't had a chance to properly investigate it. > > - Eric Hm. I think I should be able to just check for DCACHE_ENCRYPTED_NAME in the dentry here, right? I'm just trying to avoid casefolding the no-key token, and that flag should indicate that. I'll see if I can rework the ext4 patches to not need needs_casefold as well, since then there'd be no need to export it. -Daniel