mbox series

[0/4] f2fs: rework filename handling

Message ID 20200507075905.953777-1-ebiggers@kernel.org (mailing list archive)
Headers show
Series f2fs: rework filename handling | expand

Message

Eric Biggers May 7, 2020, 7:59 a.m. UTC
This patchset reworks f2fs's handling of filenames to make it much
easier to correctly implement all combinations of normal, encrypted,
casefolded, and encrypted+casefolded directories.  It also optimizes all
filesystem operations to compute the dirhash and casefolded name only
once, rather than once per directory level or directory block.

Patch 4 is RFC and shows how we can add support for encrypted+casefolded
directories fairly easily after this rework -- including support for
roll-forward recovery.  (It's incomplete as it doesn't include the
needed dentry_ops -- those can be found in Daniel's patchset
https://lkml.kernel.org/r/20200307023611.204708-1-drosen@google.com)

So far this is only lightly tested, e.g. with the xfstests in the
'encrypt' and 'casefold' groups.  I haven't tested patch 4 yet.

Eric Biggers (4):
  f2fs: don't leak filename in f2fs_try_convert_inline_dir()
  f2fs: split f2fs_d_compare() from f2fs_match_name()
  f2fs: rework filename handling
  f2fs: Handle casefolding with Encryption (INCOMPLETE)

 fs/f2fs/dir.c      | 415 +++++++++++++++++++++++++++------------------
 fs/f2fs/f2fs.h     |  85 +++++++---
 fs/f2fs/hash.c     |  87 +++++-----
 fs/f2fs/inline.c   |  49 +++---
 fs/f2fs/namei.c    |   6 +-
 fs/f2fs/recovery.c |  61 +++++--
 6 files changed, 430 insertions(+), 273 deletions(-)

Comments

Jaegeuk Kim May 7, 2020, 1:09 p.m. UTC | #1
Hi Eric,

Thank you so much for the hard work. :P
Looks good to me in general, so let me kick off some tests.

On 05/07, Eric Biggers wrote:
> This patchset reworks f2fs's handling of filenames to make it much
> easier to correctly implement all combinations of normal, encrypted,
> casefolded, and encrypted+casefolded directories.  It also optimizes all
> filesystem operations to compute the dirhash and casefolded name only
> once, rather than once per directory level or directory block.
> 
> Patch 4 is RFC and shows how we can add support for encrypted+casefolded
> directories fairly easily after this rework -- including support for
> roll-forward recovery.  (It's incomplete as it doesn't include the
> needed dentry_ops -- those can be found in Daniel's patchset
> https://lkml.kernel.org/r/20200307023611.204708-1-drosen@google.com)
> 
> So far this is only lightly tested, e.g. with the xfstests in the
> 'encrypt' and 'casefold' groups.  I haven't tested patch 4 yet.
> 
> Eric Biggers (4):
>   f2fs: don't leak filename in f2fs_try_convert_inline_dir()
>   f2fs: split f2fs_d_compare() from f2fs_match_name()
>   f2fs: rework filename handling
>   f2fs: Handle casefolding with Encryption (INCOMPLETE)
> 
>  fs/f2fs/dir.c      | 415 +++++++++++++++++++++++++++------------------
>  fs/f2fs/f2fs.h     |  85 +++++++---
>  fs/f2fs/hash.c     |  87 +++++-----
>  fs/f2fs/inline.c   |  49 +++---
>  fs/f2fs/namei.c    |   6 +-
>  fs/f2fs/recovery.c |  61 +++++--
>  6 files changed, 430 insertions(+), 273 deletions(-)
> 
> -- 
> 2.26.2
> 
> 
> 
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel