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(). 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