Received: by 2002:ab2:6309:0:b0:1fb:d597:ff75 with SMTP id s9csp203945lqt; Thu, 6 Jun 2024 00:34:52 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVUpnX2jMHtlZbmGFNKkz4YY/0/Rg/LVo03QBygXvo8GupZNxlPf93i/D957ba+A8T0Iwxc6IpBTKcmbdz80Szl5ZWfyBO+2pW+lvzdeg== X-Google-Smtp-Source: AGHT+IErPwt97lSpXGeISJFvhXpe6ZH+Dahu6xbcFDjN0Qa/RKd6emwKhc78azvZlGByxXkEWek6 X-Received: by 2002:a50:9fa2:0:b0:57a:2158:bbf9 with SMTP id 4fb4d7f45d1cf-57a8bca2bf8mr2749974a12.33.1717659292387; Thu, 06 Jun 2024 00:34:52 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717659292; cv=pass; d=google.com; s=arc-20160816; b=LPYpvcmYs+luYw74ydw8YBtVJmsCg52AMpfemd7b/kEU9+LtKBUTGp0SwB2AOEpQEv QAuUefaAhkEURYSGvEwpEhWT6BWf6Rv5uFMEjnKbWVpZSPH0mTIQI+3naqjxHJAtCksd vHP41KlwL8wTSrSg84w0jnzcz4bXt2g/P+fgCMijpZgEwoIu4eQksyG4kwtL049URksc ducUUUd8QqhldpiDuCbg5SCxsbRKMA30rUA5Xf9vWB9MgMMEvNJ+RUqwiwmDIAqBvF+i m26zrjRSvqxRM0Wzbf6OETxW4htGuGMoOwHzD76eKo5Kdh07PocEwrfa4EJXdOEcLXqd 1Atw== ARC-Message-Signature: i=2; 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:message-id:date:subject:cc:to :from:dkim-signature; bh=2vwfvp6akKU7sK6mH+RbvJB4ZNtgoOEykBuGySyoz18=; fh=R8fzAJGWANrBH9kAqL2MTIbBmNpkJwNxJdfUw9sPk9A=; b=AqLa3XcCfcheLcCpOnVKzYmKP9m2DGfjSiim45KIa9lCmZK+eww5m8KrBfJ+TY7+np LYX9X8BiH+oJ0BXmcBYuGfxJuI9HAKLEwl3E7kn2GauPogYHgBDMBJSHg9isURfbzY/T Orun8cpp3Qt33p1bnQlp6W6m5dR9rSwZeo6HUgvDa6ZpoDl+LPtLHvpdm1jnvEq2emE8 OlPtEYVCP/nFh40R37+SRV6YZdI3PM8NVCAo3y9kyqpc0aXvG02XKWdFnFS/OjaUJSg2 nWtXW1gBaw4QkZaOR7BpfTeHWig3zljPrTtgcNTn8Owt4uBTP+BMflTKPkpQCW8uaf0K /w1g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=Efc7Rcf4; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-ext4+bounces-2791-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-ext4+bounces-2791-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-57aae1fc518si397233a12.212.2024.06.06.00.34.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Jun 2024 00:34:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4+bounces-2791-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=Efc7Rcf4; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-ext4+bounces-2791-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-ext4+bounces-2791-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com 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 am.mirrors.kernel.org (Postfix) with ESMTPS id 195301F23FC9 for ; Thu, 6 Jun 2024 07:34:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 98A5013BAEB; Thu, 6 Jun 2024 07:34:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Efc7Rcf4" X-Original-To: linux-ext4@vger.kernel.org Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71DEA1F5F5; Thu, 6 Jun 2024 07:34:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.227.194 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717659278; cv=none; b=SWKnYgUWG3sPn0K5CA+G8fbpFHhIovVt08cEKKlSMwLIxCvo3a2DDjMsggbshGlA0TX4HtbfUpZR6Ojwzt8E0XGO5NP9V+y6DXwGpQwuUvnjvy5ClZW8vy5q9OvVPmuUw0/6HR22VP/QpWCrEp7vY94CLbL7c7+YBPqTQ6khCtg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717659278; c=relaxed/simple; bh=tNn94IobQd/C8dlz5nPbMB5Ad685R1KlC03nWzyXv4I=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=hsJmP1Ienqa7W43OQDwAth58TrW4bAM7ap6wCdvfCNwIM06g+6ud8VpOiciNibQoxh1HLBa9KrkZ6XUG02GSz6oXkJeqBwVsaSIY3dhZB8aL4gvpqB0P8Ii1cdO27IeQkWKf1un+Xtqyxyx5rxz72rMHK4JSlLwEHGCYnLT3Vlo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Efc7Rcf4; arc=none smtp.client-ip=46.235.227.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1717659274; bh=tNn94IobQd/C8dlz5nPbMB5Ad685R1KlC03nWzyXv4I=; h=From:To:Cc:Subject:Date:From; b=Efc7Rcf47ESRHoXu0+HlmK5cBJVdHWy5UR8IgXH8GbBe+p60/9hliZ/GLKYQwZ0sx mO36fYGcqkzoR7m8wwcQ8ZecWfEjwrZpnsNVh2sPI5xyGb7CrGIaRK4RyZUWa25FQ0 aQVl/nhjCuN+NtrvvRqZ5JSqEUhQrtCHLfajBlDmGmDpTHtJqZJnTaB8j0VSjNAkNl e504pZkKLpIfIDUYak+zdkVrJ3zeFsfW8//VAnp4vWD8nkO2SymQJArKkX1SGgdaL/ 3QYO49kbNaw6A9KO5sc2PKhF9YD+R6OHvsvuKJXv0LvTk6ZFI8ASRmiNThlMk0+0Q4 CcjH8AMVlYaCg== Received: from eugen-station.. (cola.collaboradmins.com [195.201.22.229]) (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) (Authenticated sender: ehristev) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 7332137821B7; Thu, 6 Jun 2024 07:34:33 +0000 (UTC) From: Eugen Hristev To: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, jaegeuk@kernel.org, adilger.kernel@dilger.ca, tytso@mit.edu Cc: chao@kernel.org, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, ebiggers@google.com, krisman@suse.de, kernel@collabora.com, Eugen Hristev Subject: [PATCH v18 0/7] Case insensitive cleanup for ext4/f2fs Date: Thu, 6 Jun 2024 10:33:46 +0300 Message-Id: <20240606073353.47130-1-eugen.hristev@collabora.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Hello, I am trying to respin the series here : https://www.spinics.net/lists/linux-ext4/msg85081.html I resent some of the v9 patches and got some reviews from Gabriel, I did changes as requested and here is v18. Changes in v18: - in patch 2/7 removed the check for folded_name->len - in patch 4/7 simplified the use of generic_ci_match Changes in v17: - in patch 2/7 the case insensitive match helper, I modified the logic a bit, memcmp params, and return errors properly, also removed patches for logging errors as the message is now included in the helper itself. Changes in v16: - rewrote patch 2/9 without `match` - changed to return value in generic_ci_match coming from utf8 compare only in strict mode. - changed f2fs_warn to *_ratelimited in 7/9 - removed the declaration of f2fs_cf_name_slab in recovery.c as it's no longer needed. Changes in v15: - fix wrong check `ret<0` in 7/9 - fix memleak reintroduced in 8/9 Changes in v14: - fix wrong kfree unchecked call - changed the return code in 3/8 Changes in v13: - removed stray wrong line in 2/8 - removed old R-b as it's too long since they were given - removed check for null buff in 2/8 - added new patch `f2fs: Log error when lookup of encoded dentry fails` as suggested - rebased on unicode.git for-next branch Changes in v12: - revert to v10 comparison with propagating the error code from utf comparison Changes in v11: - revert to the original v9 implementation for the comparison helper. Changes in v10: - reworked a bit the comparison helper to improve performance by first performing the exact lookup. * Original commit letter The case-insensitive implementations in f2fs and ext4 have quite a bit of duplicated code. This series simplifies the ext4 version, with the goal of extracting ext4_ci_compare into a helper library that can be used by both filesystems. It also reduces the clutter from many codeguards for CONFIG_UNICODE; as requested by Linus, they are part of the codeflow now. While there, I noticed we can leverage the utf8 functions to detect encoded names that are corrupted in the filesystem. Therefore, it also adds an ext4 error on that scenario, to mark the filesystem as corrupted. This series survived passes of xfstests -g quick. Gabriel Krisman Bertazi (7): ext4: Simplify the handling of cached casefolded names f2fs: Simplify the handling of cached casefolded names libfs: Introduce case-insensitive string comparison helper ext4: Reuse generic_ci_match for ci comparisons f2fs: Reuse generic_ci_match for ci comparisons ext4: Move CONFIG_UNICODE defguards into the code flow f2fs: Move CONFIG_UNICODE defguards into the code flow fs/ext4/crypto.c | 10 +--- fs/ext4/ext4.h | 35 ++++++++----- fs/ext4/namei.c | 122 ++++++++++++++------------------------------- fs/ext4/super.c | 4 +- fs/f2fs/dir.c | 105 ++++++++++++-------------------------- fs/f2fs/f2fs.h | 16 +++++- fs/f2fs/namei.c | 10 ++-- fs/f2fs/recovery.c | 9 +--- fs/f2fs/super.c | 8 +-- fs/libfs.c | 74 +++++++++++++++++++++++++++ include/linux/fs.h | 4 ++ 11 files changed, 195 insertions(+), 202 deletions(-) -- 2.34.1