mbox series

[v4,00/10] Clean up the case-insensitive lookup path

Message ID 20220511193146.27526-1-krisman@collabora.com
Headers show
Series Clean up the case-insensitive lookup path | expand

Message

Gabriel Krisman Bertazi May 11, 2022, 7:31 p.m. UTC
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 (10):
  ext4: Match the f2fs ci_compare implementation
  ext4: Simplify the handling of cached insensitive names
  f2fs: Simplify the handling of cached insensitive names
  ext4: Implement ci comparison using unicode_name
  ext4: Simplify hash check on ext4_match
  ext4: Log error when lookup of encoded dentry fails
  ext4: Move ext4_match_ci into libfs
  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/ext4.h     |  41 +++++++--------
 fs/ext4/namei.c    | 126 ++++++++++++++-------------------------------
 fs/ext4/super.c    |   4 +-
 fs/f2fs/dir.c      | 103 ++++++++++++------------------------
 fs/f2fs/f2fs.h     |   3 +-
 fs/f2fs/namei.c    |  12 ++---
 fs/f2fs/recovery.c |   5 +-
 fs/f2fs/super.c    |  22 ++++----
 fs/libfs.c         |  61 ++++++++++++++++++++++
 include/linux/fs.h |   8 +++
 10 files changed, 185 insertions(+), 200 deletions(-)

Comments

Theodore Ts'o May 17, 2022, 7:37 p.m. UTC | #1
On Wed, May 11, 2022 at 03:31:36PM -0400, Gabriel Krisman Bertazi wrote:
> 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.

Gabriel, are you planning on doing another version of this patch series?

It looks like the first two patches for ext4 are not controversial, so
I could take those, while some of the other patches have questions
which Eric has raised.

Thanks,

						- Ted
Gabriel Krisman Bertazi May 17, 2022, 7:57 p.m. UTC | #2
"Theodore Ts'o" <tytso@mit.edu> writes:

> On Wed, May 11, 2022 at 03:31:36PM -0400, Gabriel Krisman Bertazi wrote:
>> 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.
>
> Gabriel, are you planning on doing another version of this patch
> series?
> It looks like the first two patches for ext4 are not controversial, so
> I could take those, while some of the other patches have questions
> which Eric has raised.

Hi Ted,

I'll be reworking the series to apply Eric's comments and I might render
patch 1 unnecessary.  I'd be happy to send a v5 for the whole thing
instead of applying the first two now.

Thanks,
Theodore Ts'o May 18, 2022, 12:15 a.m. UTC | #3
On Tue, May 17, 2022 at 03:57:05PM -0400, Gabriel Krisman Bertazi wrote:
> 
> I'll be reworking the series to apply Eric's comments and I might render
> patch 1 unnecessary.  I'd be happy to send a v5 for the whole thing
> instead of applying the first two now.

OK, great, I'll wait for the v5 patch series.

Thanks,

						- Ted