linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH NOMERGE 00/13] Case insensitiveness as a mountpoint
@ 2018-05-22 20:38 Gabriel Krisman Bertazi
  2018-05-22 20:38 ` [PATCH NOMERGE 01/13] vfs: Add support for mounting with MS_CASEFOLD Gabriel Krisman Bertazi
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: Gabriel Krisman Bertazi @ 2018-05-22 20:38 UTC (permalink / raw)
  To: viro; +Cc: linux-fsdevel, Gabriel Krisman Bertazi

Hi,

[[Just for recording at the ML.  i am not proposing it for merge with
the mountpoint design.]]

Just for completeness, this is the code I mentioned at LSFMM, which
implements case-insensitive lookups as an attribute of the mountpoint,
allowing support for simultaneous case-insensitive and senstive views of
the filesystem.

It supports a single ci mountpoint like this:

  mount -o ignorecase,encoding=utf8n-10.0.0 /dev/vda /mnt

It allows simultaneous views via a bind,remount, by supporting the
parameter ignorecase.  Like this:

  mount -o ignorecase,encoding=utf8n-10.0.0 /dev/vda /mnt
  mount -o bind /mnt /mnt-ci
  mount -o remount,bind,ignorecase none /mnt-ci

This patchset also enables ext4 ci support, which requires the utf8n
implementation I submitted on the other patchset.  utf8n is the only
encoding supported by this ext4 code, but ascii can be trivially
supported with a short patch to implement casefold/strcmp operations.
Attempts to mount with other encodings will succeed but will trigger
failures when attempting to access the filesystem.  This could be
improved at the fs layer to provide an error message at mount time.

The patchset for utf8n is awaiting review for merge at:
  https://marc.info/?l=linux-fsdevel&m=152692428419075&w=2

Since the vfs/ext4 support in this patchset is just for the record, and
I am not proposing to push this patchset current state anymore, feel
free to ignore review for this.

If you want an easy way to fetch all the changes required to build this
code, including the ucd source files used to generate the decodification
tree, you can fetch directly from:

  https://gitlab.collabora.com/krisman/linux.git -b vfs-ms_casefold-smart

Gabriel Krisman Bertazi (13):
  vfs: Add support for mounting with MS_CASEFOLD
  vfs: Propagate LOOKUP_CASEFOLD after doing parent lookups
  vfs: Add support for positive dentries CI lookups in the dentry cache
  vfs: Allow bind,remount with MS_CASEFOLD
  vfs: Handle case-exact lookup in d_add_ci
  vfs: Add Support for hard negative dentries in the dcache
  vfs: Handle MNT_CASEFOLD in /proc/mounts
  fscrypt: Introduce charset-based matching functions
  ext4: Include encoding information on the superblock
  ext4: Plumb LOOK_CASEFOLD up to ext4 comparison functions
  ext4: Support charset name matching
  ext4: Implement ext4 dcache hooks for custom charsets
  ext4: Notify VFS of support for casefolded mountpoints

 fs/dcache.c                     | 95 +++++++++++++++++++++++---------
 fs/ext4/dir.c                   | 48 ++++++++++++++++
 fs/ext4/ext4.h                  |  9 ++-
 fs/ext4/inline.c                |  7 ++-
 fs/ext4/namei.c                 | 93 +++++++++++++++++++++----------
 fs/ext4/super.c                 | 49 ++++++++++++++++-
 fs/namei.c                      | 98 +++++++++++++++++++++++++++++----
 fs/namespace.c                  | 34 +++++++++---
 fs/proc_namespace.c             |  1 +
 include/linux/dcache.h          | 24 ++++++--
 include/linux/fs.h              |  2 +
 include/linux/fscrypt.h         |  1 +
 include/linux/fscrypt_notsupp.h | 16 ++++++
 include/linux/fscrypt_supp.h    | 27 +++++++++
 include/linux/mount.h           |  1 +
 include/linux/namei.h           |  1 +
 include/uapi/linux/fs.h         |  1 +
 17 files changed, 423 insertions(+), 84 deletions(-)

-- 
2.17.0

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-05-22 20:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-22 20:38 [PATCH NOMERGE 00/13] Case insensitiveness as a mountpoint Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 01/13] vfs: Add support for mounting with MS_CASEFOLD Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 02/13] vfs: Propagate LOOKUP_CASEFOLD after doing parent lookups Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 03/13] vfs: Add support for positive dentries CI lookups in the dentry cache Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 04/13] vfs: Allow bind,remount with MS_CASEFOLD Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 05/13] vfs: Handle case-exact lookup in d_add_ci Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 06/13] vfs: Add Support for hard negative dentries in the dcache Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 07/13] vfs: Handle MNT_CASEFOLD in /proc/mounts Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 08/13] fscrypt: Introduce charset-based matching functions Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 09/13] ext4: Include encoding information on the superblock Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 10/13] ext4: Plumb LOOK_CASEFOLD up to ext4 comparison functions Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 11/13] ext4: Support charset name matching Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 12/13] ext4: Implement ext4 dcache hooks for custom charsets Gabriel Krisman Bertazi
2018-05-22 20:38 ` [PATCH NOMERGE 13/13] ext4: Notify VFS of support for casefolded mountpoints Gabriel Krisman Bertazi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).