Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp998897ybh; Thu, 12 Mar 2020 15:12:24 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsy4ITakefOAomB4XvbWz8ieO52PF3rp4C268Wre11byYAJzqso+cXmz1qHQUcTS2yaRbh8 X-Received: by 2002:aca:4fc7:: with SMTP id d190mr4527435oib.100.1584051143888; Thu, 12 Mar 2020 15:12:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584051143; cv=none; d=google.com; s=arc-20160816; b=fvXhGwdvHS+K2FOIfKDf0U47g9hTeAqXFbEyixN3Q+34jZ6xCJXld0M7UYj/NBzhXT FYtPpoFc0OwZRhUKSSClRMSWjKVBJYeEl0KK4raJQvoWseHL3W7zh+0a65vpdpMhxPPI 5HmTYrc6zg/WoxNJ7jUzjFVsZLquT5+lOJBEyTT/MytCwAmL+FxxNczoADDooqdOzEMy 6U8C6wln7rR/LBdIEFVdwOvQmPkTZJB0ZGorj4gadGo8A0ypr5k7L5hPsCzDnNvLrBWE g7tqNzAawHfd17LRtubzA1hqlNh5ylCNixi/RpLpLU+7+cQhFlh8EK0HCvwSV0cgVdn1 zcSA== 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=f+nbJgOAkU3OKGNy5HAiFcAe6BZ2/dfnnfHDkezdsLM=; b=kHDYd3CiQT1OM3qZivV3SbscTpLLjXR2v1ok19KBgI8f+GZGt206mJdt+cUlaWTh0l rNKTILrrnlKIh23a2+woWgsQBR+axtqew7NR99QPSQLbaegWW40gBtkOYoy0xBOzfzMr 9GjYJ6x9IpjA7rsL2cUUk3gPUQYkEdNr70Aw9hHIYDuEE27gQbwyakATZEX+Y1IF8+8L HPP+qngs5U6OzROxejA1iCMjV6rxQ8LSk17PdSIwuP7KA56uVbfOEJNw3Fbrm6vp/LYr tILehMKhfswmGw97Ymbi8hA5iDqw8/YAJp4G85yHpHxQyBN/UGTgMMMjyZHY+Bcf2akq OZKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=lLp+JNv1; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-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. [209.132.180.67]) by mx.google.com with ESMTP id l12si3529259otn.101.2020.03.12.15.12.06; Thu, 12 Mar 2020 15:12:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=lLp+JNv1; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-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 S1726550AbgCLWLb (ORCPT + 99 others); Thu, 12 Mar 2020 18:11:31 -0400 Received: from mail-lf1-f66.google.com ([209.85.167.66]:39128 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726836AbgCLWLb (ORCPT ); Thu, 12 Mar 2020 18:11:31 -0400 Received: by mail-lf1-f66.google.com with SMTP id j15so6229592lfk.6 for ; Thu, 12 Mar 2020 15:11:28 -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=f+nbJgOAkU3OKGNy5HAiFcAe6BZ2/dfnnfHDkezdsLM=; b=lLp+JNv1GIglmiE7sOrC1qiIR92TS5cKLDQInmmSnSrfr1qRJIqEePz4qZzmCMaXQg WfjeGL9/4gKBTTDka+GpLlLtpbiD1yloqRAJ0j1uaN1RPyfrSudbA4agtp71u5vQLvVh kbfpE2jpEmTv+gLLK2bdDBoWn9tFPGdA8uR+LZOOg0cNSMA//V8Yzq7FYJEWfGS9egxp ssrmkKAtsOcFrY+F+ktTdm/G2ys1pRbkX5kFFOvXt+HDZmd1myZbaTJUa01dn3e+L37B lhEYR0ODVOxYIzPOrxSPTQoqyVKo30x+HMDzyYjtalF/Xk6Pf7WKXUgxp0pP1/UDQYLp ZXFQ== 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=f+nbJgOAkU3OKGNy5HAiFcAe6BZ2/dfnnfHDkezdsLM=; b=tdCde8YFVU9LFF6XgX3tzUYXpYt9HC6mMEEljFcmTv4eTThk0cjEO8P9yS79ZcyDnj DPJ8rya6w8helBJNrhoOVr2ECJP/EC3uwXOeXM7SxFhoMiwNqk9Xho6W61g4Y3l+hptx dnaVGbEbhVk4UbQ4NoepFWXQVYUQWFlQfY6MedjDvdB74g73M5MNh+rZCTarL7cdsTtY KzIka5RmcxYA8k8bz1dYwCNbRWAOmonGP8JhunijRHTQjnpHnfIyuItG12lBPqzdrQ5+ pPnkxwiU++n+GOKbSZYu562u6pxFB70NKz/hB2PBNk4XLQ+blevr1AvLO/GT7PuabCXh vPdQ== X-Gm-Message-State: ANhLgQ1FnrBtzpT6jgUF+IOFEaTJWFiX6c9uczFAQmFeLU33QQDpp3j4 HvCL7QdHCjXmMnEGHv0K4a8Pdo9iTbMyO5Ez8h9YgQ== X-Received: by 2002:a19:4354:: with SMTP id m20mr2516445lfj.166.1584051087657; Thu, 12 Mar 2020 15:11:27 -0700 (PDT) MIME-Version: 1.0 References: <20200307023611.204708-1-drosen@google.com> <20200307023611.204708-3-drosen@google.com> <20200307034850.GH23230@ZenIV.linux.org.uk> In-Reply-To: <20200307034850.GH23230@ZenIV.linux.org.uk> From: Daniel Rosenberg Date: Thu, 12 Mar 2020 15:11:16 -0700 Message-ID: Subject: Re: [PATCH v8 2/8] fs: Add standard casefolding support To: Al Viro Cc: "Theodore Ts'o" , linux-ext4@vger.kernel.org, Jaegeuk Kim , Chao Yu , linux-f2fs-devel@lists.sourceforge.net, Eric Biggers , linux-fscrypt@vger.kernel.org, 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-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On Fri, Mar 6, 2020 at 7:48 PM Al Viro wrote: > > On Fri, Mar 06, 2020 at 06:36:05PM -0800, Daniel Rosenberg wrote: > > Have you even tested that? Could you tell me where does the calculated > hash go? And just what is it doing trying to check if the name we are about to > look up in directory specified by 'dentry' might be pointing to dentry->d_iname? Turns out I tested exactly not that :/ Ran tests on the wrong kernel. I've fixed my setup so that shouldn't happen again. The calculated hash there goes exactly nowhere because I failed to copy it back into the original qstr. I'm trying to see if the name is a small name, which, if my understanding is correct, is the only time a name might change from underneath you in an RCU context. This assumes that the name either comes from the dentry, or is otherwise not subject to changes. It's based around the check that take_dentry_name_snapshot does. It does feel a bit sketchy to assume that, so I'm very open to other suggestions there. I'm going through that hassle because the various utf8 functions do a lot of dereferencing the string and manipulating pointers by those values, expecting them to be consistent. It might be enough to just go through that code and add a bunch of checks to make sure we can't accidentally walk off of either end.