• Duane Griffin's avatar
    HFS+: refactor ASCII to unicode conversion routine for later reuse · 1e96b7ca
    Duane Griffin authored
    The HFS+ filesystem is case-insensitive and does automatic unicode
    decomposition by default, but does not provide custom dentry operations.  This
    can lead to multiple dentries being cached for lookups on a filename with
    varying case and/or character (de)composition.
    
    These patches add custom dentry hash and comparison operations for
    case-sensitive and/or automatically decomposing HFS+ filesystems.  Unicode
    decomposition and case-folding are performed as required to ensure equivalent
    filenames are hashed to the same values and compare as equal.
    
    This patch:
    
    Refactor existing HFS+ ASCII to unicode string conversion routine to split out
    character conversion functionality.  This will be reused by the custom dentry
    hash and comparison routines.  This approach avoids unnecessary memory
    allocation compared to using the string conversion routine directly in the new
    functions.
    
    [akpm@linux-foundation.org: avoid use-of-uninitialised]
    Signed-off-by: default avatarDuane Griffin <duaneg@dghda.com>
    Signed-off-by: default avatarRoman Zippel <zippel@linux-m68k.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1e96b7ca
unicode.c 6.31 KB