On Friday 03 January 2020 16:06:25 Namjae Jeon wrote: > > On Thursday 02 January 2020 16:20:33 Namjae Jeon wrote: > > > This adds the implementation of nls operations for exfat. > > > > > > Signed-off-by: Namjae Jeon <namjae.jeon@xxxxxxxxxxx> > > > Signed-off-by: Sungjong Seo <sj1557.seo@xxxxxxxxxxx> > > > --- > > > fs/exfat/nls.c | 809 > > > +++++++++++++++++++++++++++++++++++++++++++++++++ > > > 1 file changed, 809 insertions(+) > > > create mode 100644 fs/exfat/nls.c > > > > > > diff --git a/fs/exfat/nls.c b/fs/exfat/nls.c new file mode 100644 > > > index 000000000000..af52328e28ff > > > --- /dev/null > > > +++ b/fs/exfat/nls.c > > > > ... > > > > > +int exfat_nls_uni16s_to_vfsname(struct super_block *sb, > > > + struct exfat_uni_name *uniname, unsigned char *p_cstring, > > > + int buflen) > > > +{ > > > + if (EXFAT_SB(sb)->options.utf8) > > > + return __exfat_nls_utf16s_to_vfsname(sb, uniname, p_cstring, > > > + buflen); > > > + return __exfat_nls_uni16s_to_vfsname(sb, uniname, p_cstring, > > buflen); > > > +} > > > > Hello, I'm looking at this function and basically it do nothing. > > Or was it supposed that this function should do something more for UTF-8 > > encoding? > > > > There is one if- statement, but in both branches is executed exactly > > same code. > > > > And executed function just pass same arguments as current callee > > function. > > > > So calls to exfat_nls_uni16s_to_vfsname() can be replaced by direct > > calls to __exfat_nls_uni16s_to_vfsname(). > Ah, The function names are similar, but not same. see utf16s/uni16s. > > Thanks! Ou, sorry for that :-( I will look again and more deeply at this encoding code as I think there can be some problem with processing utf-16 buffers... > > > > Or maybe better, rename __exfat_nls_uni16s_to_vfsname() function to > > exfat_nls_uni16s_to_vfsname(). > > > > > +int exfat_nls_vfsname_to_uni16s(struct super_block *sb, > > > + const unsigned char *p_cstring, const int len, > > > + struct exfat_uni_name *uniname, int *p_lossy) > > > +{ > > > + if (EXFAT_SB(sb)->options.utf8) > > > + return __exfat_nls_vfsname_to_utf16s(sb, p_cstring, len, > > > + uniname, p_lossy); > > > + return __exfat_nls_vfsname_to_uni16s(sb, p_cstring, len, uniname, > > > + p_lossy); > > > +} > > > > And same for this function. > > > > -- > > Pali Rohár > > pali.rohar@xxxxxxxxx > > -- Pali Rohár pali.rohar@xxxxxxxxx