]> git.ipfire.org Git - people/arne_f/kernel.git/blobdiff - fs/cifs/readdir.c
Allow conversion of characters in Mac remap range. Part 1
[people/arne_f/kernel.git] / fs / cifs / readdir.c
index d2141f1013829d028ac1b9df15f2a05b254923d4..5bf3d0a746f890e884537f41481e0e541879b92c 100644 (file)
@@ -704,15 +704,21 @@ static int cifs_filldir(char *find_entry, struct file *file,
 
        if (file_info->srch_inf.unicode) {
                struct nls_table *nlt = cifs_sb->local_nls;
+               int map_type;
+
+               if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SFM_CHR)
+                       map_type = SFM_MAP_UNI_RSVD;
+               else if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR)
+                       map_type = SFU_MAP_UNI_RSVD;
+               else
+                       map_type = NO_MAP_UNI_RSVD;
 
                name.name = scratch_buf;
                name.len =
                        cifs_from_utf16((char *)name.name, (__le16 *)de.name,
                                        UNICODE_NAME_MAX,
                                        min_t(size_t, de.namelen,
-                                             (size_t)max_len), nlt,
-                                       cifs_sb->mnt_cifs_flags &
-                                               CIFS_MOUNT_MAP_SPECIAL_CHR);
+                                             (size_t)max_len), nlt, map_type);
                name.len -= nls_nullsize(nlt);
        } else {
                name.name = de.name;