[PATCH NOMERGE 00/13] Case insensitiveness as a mountpoint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux