Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1522603pxu; Fri, 27 Nov 2020 09:03:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJwrFQ2C26vmnqk5QsSKKIuoNk1mGNUYWwsAyhJ+2Xcwt4OK5qbBptjPZ9IdoIk0Y7HBYJ4U X-Received: by 2002:a17:906:15cc:: with SMTP id l12mr8399682ejd.363.1606496634790; Fri, 27 Nov 2020 09:03:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606496634; cv=none; d=google.com; s=arc-20160816; b=EFoPqrgJ/goLVXna8AMGd6UShNAnun2IXEn/DTs4r41uAqstK4oh1Dee9m7e0mGoAb xfupx97wwxfVfQnQqf/AxqaP3mXoOxknBw+byrbriGXbPfBzV9jXP0K+l3o1DbzqC1Yo uzkVd5AnFuegbmRkUsH+7uLp170rwskjrguGl79mWZ20My+BLFv5yNDiNBby9ntL2k06 un1aXiCXhiVwc5l5F/UHRCnctlogKif84qeA3wiyTr3DCfqwV1s+TgvpPgUovhEoZeCq VxZKqQXIjBSAynkZj7UocaDHnecwVXl+RZWXMk07G8/z7+X6ap67rFr6izkYCT6467ug xZeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=pYw3fOH8XRBRxUoOLrmht7ZL2HxydZ612J/Xov2ZQDw=; b=C5V8t6+Oui4fGQZgDLEs+8cXk94+Qh1IwUFSVcqyLU+1w54dzJUpG4HEdFCnqtmGyX Yq/IOj0n4LutEXJLoqhye44lBPniaj9b4KyzxSiP8SVTOeSiKVCWgnzHskMB+oec+QP5 QZEjIte+IsP7A8JczeYoVX7+b3lFamq+HHpJOZ4ru6wjNMxSd0eIxbeR3aE/z4DIVesJ 5bqiMH3urH1QITRBbCOxWrljz8TWQT+oA2dg4aCiG/NyURVVgvjOLOTHrv5UJ/ufLK56 o7qQgfYlknsHMfLhhmlDltS3yUfwLd9Be8QNN2dPJ9DiHJgnL7THC5fFnSKYEAt5hAgp S75g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bs5si5649790edb.176.2020.11.27.09.03.17; Fri, 27 Nov 2020 09:03:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731718AbgK0RBi (ORCPT + 99 others); Fri, 27 Nov 2020 12:01:38 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:57086 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731703AbgK0RBi (ORCPT ); Fri, 27 Nov 2020 12:01:38 -0500 Received: from xps.home (unknown [IPv6:2a01:e35:2fb5:1510:5a64:74b8:f3be:d972]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: aferraris) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 9894E1F464FB; Fri, 27 Nov 2020 17:01:36 +0000 (GMT) From: Arnaud Ferraris To: linux-ext4@vger.kernel.org Cc: Daniel Rosenberg , Arnaud Ferraris Subject: [PATCH v2 00/12] e2fsprogs: improve case-insensitive fs support Date: Fri, 27 Nov 2020 18:01:04 +0100 Message-Id: <20201127170116.197901-1-arnaud.ferraris@collabora.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Hello, This patch series improves e2fsprogs for case-insensitive filesystems. First, it allows tune2fs to enable the 'casefold' feature on existing filesystems. Then, it improves e2fsck by allowing it to: - fix entries containing invalid UTF-8 characters - detect duplicated entries By default, invalid filenames are only checked when strict mode is enabled. A new option is therefore added to allow the user to force this verification. This series has been tested by running xfstests, and by manually corrupting the test filesystem using debugfs as well. Best regards, Arnaud --- Changes in v2: - added missing comment in e2fsck/pass1.c - added a new problem code dedicated to bad encoded file names - reworked a test in e2fsck/pass2.c Arnaud Ferraris (1): e2fsck: add new problem for casefolded name check Gabriel Krisman Bertazi (11): tune2fs: Allow enabling casefold feature after fs creation tune2fs: Fix casefold+encrypt error message ext2fs: Add method to validate casefolded strings ext2fs: Implement faster CI comparison of strings e2fsck: Fix entries with invalid encoded characters e2fsck: Support casefold directories when rehashing dict: Support comparison with context e2fsck: Detect duplicated casefolded direntries for rehash e2fsck: Add option to force encoded filename verification e2fsck.8.in: Document check_encoding extended option tests: f_bad_fname: Test fixes of invalid filenames and duplicates e2fsck/e2fsck.8.in | 4 ++ e2fsck/e2fsck.c | 4 ++ e2fsck/e2fsck.h | 2 + e2fsck/pass1.c | 18 ++++++++ e2fsck/pass1b.c | 2 +- e2fsck/pass2.c | 76 +++++++++++++++++++++++++++++--- e2fsck/problem.c | 5 +++ e2fsck/problem.h | 3 ++ e2fsck/rehash.c | 88 ++++++++++++++++++++++++++++++------- e2fsck/unix.c | 4 ++ lib/ext2fs/ext2fs.h | 6 +++ lib/ext2fs/ext2fsP.h | 6 +++ lib/ext2fs/nls_utf8.c | 62 ++++++++++++++++++++++++++ lib/support/dict.c | 22 +++++++--- lib/support/dict.h | 4 +- lib/support/mkquota.c | 2 +- misc/tune2fs.c | 18 +++++++- tests/f_bad_fname/expect.1 | 22 ++++++++++ tests/f_bad_fname/expect.2 | 7 +++ tests/f_bad_fname/image.gz | Bin 0 -> 802 bytes tests/f_bad_fname/name | 1 + 21 files changed, 322 insertions(+), 34 deletions(-) create mode 100644 tests/f_bad_fname/expect.1 create mode 100644 tests/f_bad_fname/expect.2 create mode 100644 tests/f_bad_fname/image.gz create mode 100644 tests/f_bad_fname/name -- 2.28.0