The output of readlink() is not translated to Unicode (or to client encoding, I'm not sure how and where this happens). For Cyrillic I have in config file: unix charset = KOI8-R dos charset = 866 display charset = KOI8-R Now all filenames with Cyrillic letters are shown correctly on both Unix and Windows clients (even for symlinks), but the links themselves are broken (the symlink pointer is not encoded correctly).
Please use cp866 instead of plain "866"
Is this fixed when using CP866 as the charset name?
(In reply to comment #2) > Is this fixed when using CP866 as the charset name? First of all, "CP866" doesn't work, only "cp866" does. Second, this doesn't help. Here's a ls -la listing (I'm using codepage 1251 to display cyrillic letters, I'm not sure how Bugzilla will react): drwxrwxrwx 1 root root 0 Дек 5 14:54 ____разгрести/ lrw-rw-rw- 1 root root 13 Янв 13 22:37 тест -> ____а §ЈаҐбвЁ The second directory is a link to the first one. As you can see, both directories are in the correct encoding (cp1251), while the contents of the link are left untranslated (cp866). As a result, the link is broken.
what client do you use to reproduce this bug? smbmount/smbfs I guess, right? Any other one? If you use cifs, everything works fine. smbclient works fine, too. I think this is just another smbfs bug - won't ever be fixed most likely.
(In reply to comment #4) > what client do you use to reproduce this bug? smbmount/smbfs I guess, right? Ah exactly, that was it. Using cifsmount to mount the share fixes the bug (for some reason samba-client package from fedora core 2 doesn't include it). So it looks like it's a bug in kernel smbfs module. By looking at drivers/fs/smbfs/proc.c, function smb_proc_read_link I clearly see now that it just does strcpy() on the received link contents, rather than calling server->ops->conver(). Maybe I'll try if that works but it definitely looks like a smbfs module bug. I believe this bug can be closed, then.