[v12,0/8] Cache insensitive cleanup for ext4/f2fs

Message ID 20240220085235.71132-1-eugen.hristev@collabora.com
Headers
Series Cache insensitive cleanup for ext4/f2fs |

Message

Eugen Hristev Feb. 20, 2024, 8:52 a.m. UTC
  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 v12.

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 (8):
  ext4: Simplify the handling of cached insensitive names
  f2fs: Simplify the handling of cached insensitive 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: Log error when lookup of encoded dentry fails
  ext4: Move CONFIG_UNICODE defguards into the code flow
  f2fs: Move CONFIG_UNICODE defguards into the code flow

 fs/ext4/crypto.c   |  19 ++-----
 fs/ext4/ext4.h     |  35 +++++++-----
 fs/ext4/namei.c    | 129 ++++++++++++++++-----------------------------
 fs/ext4/super.c    |   4 +-
 fs/f2fs/dir.c      | 105 +++++++++++-------------------------
 fs/f2fs/f2fs.h     |  17 +++++-
 fs/f2fs/namei.c    |  10 ++--
 fs/f2fs/recovery.c |   5 +-
 fs/f2fs/super.c    |   8 +--
 fs/libfs.c         |  85 +++++++++++++++++++++++++++++
 include/linux/fs.h |   4 ++
 11 files changed, 216 insertions(+), 205 deletions(-)
  

Comments

Gabriel Krisman Bertazi Feb. 27, 2024, 11:48 p.m. UTC | #1
Eugen Hristev <eugen.hristev@collabora.com> writes:

> Hello,
>
> I am trying to respin the series here :
> https://www.spinics.net/lists/linux-ext4/msg85081.html

This has a reviewed-by tag from Eric, but since its been years and we've
been going through more changes now, I'd ask you to drop the r-b until
Eric has had a chance to review it and give a new tag.

Thanks,

> I resent some of the v9 patches and got some reviews from Gabriel,
> I did changes as requested and here is v12.
>
> 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 (8):
>   ext4: Simplify the handling of cached insensitive names
>   f2fs: Simplify the handling of cached insensitive 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: Log error when lookup of encoded dentry fails
>   ext4: Move CONFIG_UNICODE defguards into the code flow
>   f2fs: Move CONFIG_UNICODE defguards into the code flow
>
>  fs/ext4/crypto.c   |  19 ++-----
>  fs/ext4/ext4.h     |  35 +++++++-----
>  fs/ext4/namei.c    | 129 ++++++++++++++++-----------------------------
>  fs/ext4/super.c    |   4 +-
>  fs/f2fs/dir.c      | 105 +++++++++++-------------------------
>  fs/f2fs/f2fs.h     |  17 +++++-
>  fs/f2fs/namei.c    |  10 ++--
>  fs/f2fs/recovery.c |   5 +-
>  fs/f2fs/super.c    |   8 +--
>  fs/libfs.c         |  85 +++++++++++++++++++++++++++++
>  include/linux/fs.h |   4 ++
>  11 files changed, 216 insertions(+), 205 deletions(-)