From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753376Ab2CCVHY (ORCPT ); Sat, 3 Mar 2012 16:07:24 -0500 Received: from mail.parknet.co.jp ([210.171.160.6]:53343 "EHLO mail.parknet.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751260Ab2CCVHX (ORCPT ); Sat, 3 Mar 2012 16:07:23 -0500 From: OGAWA Hirofumi To: Namjae Jeon Cc: linux-kernel@vger.kernel.org, Ravishankar N , Andrew Morton Subject: Re: [PATCH 1/2] fat: Clean up xlate_to_uni. References: <1330737356-7092-1-git-send-email-linkinjeon@gmail.com> <87d38tv1ts.fsf@devron.myhome.or.jp> Date: Sun, 04 Mar 2012 06:07:20 +0900 In-Reply-To: <87d38tv1ts.fsf@devron.myhome.or.jp> (OGAWA Hirofumi's message of "Sun, 04 Mar 2012 05:58:39 +0900") Message-ID: <871up9v1fb.fsf@devron.myhome.or.jp> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org OGAWA Hirofumi writes: > Namjae Jeon writes: > >> The xlate_to_uni is called by vfat_build_slots with sbi->nls_io as the final >> argument. nls_io can never be null at this point because the check >> is already being done in fat_fill_super wherein the mount fails if >> it is null. > > Looks good to me. And now, I don't have public repo after kernel.org > break in. It would be better to pass akpm. > > Acked-by: OGAWA Hirofumi Sigh. My ISP's smtp seems to be blocked due to BRBL. Please forward to akpm. >> Signed-off-by: Namjae Jeon >> Signed-off-by: Ravishankar N >> --- >> fs/fat/namei_vfat.c | 83 ++++++++++++++++++++++----------------------------- >> 1 files changed, 36 insertions(+), 47 deletions(-) >> >> diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c >> index a81eb23..aae3b4e 100644 >> --- a/fs/fat/namei_vfat.c >> +++ b/fs/fat/namei_vfat.c >> @@ -521,57 +521,46 @@ xlate_to_uni(const unsigned char *name, int len, unsigned char *outname, >> >> op = &outname[*outlen * sizeof(wchar_t)]; >> } else { >> - if (nls) { >> - for (i = 0, ip = name, op = outname, *outlen = 0; >> - i < len && *outlen <= FAT_LFN_LEN; >> - *outlen += 1) >> - { >> - if (escape && (*ip == ':')) { >> - if (i > len - 5) >> - return -EINVAL; >> - ec = 0; >> - for (k = 1; k < 5; k++) { >> - nc = ip[k]; >> - ec <<= 4; >> - if (nc >= '0' && nc <= '9') { >> - ec |= nc - '0'; >> - continue; >> - } >> - if (nc >= 'a' && nc <= 'f') { >> - ec |= nc - ('a' - 10); >> - continue; >> - } >> - if (nc >= 'A' && nc <= 'F') { >> - ec |= nc - ('A' - 10); >> - continue; >> - } >> - return -EINVAL; >> + for (i = 0, ip = name, op = outname, *outlen = 0; >> + i < len && *outlen <= FAT_LFN_LEN; >> + *outlen += 1) { >> + if (escape && (*ip == ':')) { >> + if (i > len - 5) >> + return -EINVAL; >> + ec = 0; >> + for (k = 1; k < 5; k++) { >> + nc = ip[k]; >> + ec <<= 4; >> + if (nc >= '0' && nc <= '9') { >> + ec |= nc - '0'; >> + continue; >> } >> - *op++ = ec & 0xFF; >> - *op++ = ec >> 8; >> - ip += 5; >> - i += 5; >> - } else { >> - if ((charlen = nls->char2uni(ip, len - i, (wchar_t *)op)) < 0) >> - return -EINVAL; >> - ip += charlen; >> - i += charlen; >> - op += 2; >> + if (nc >= 'a' && nc <= 'f') { >> + ec |= nc - ('a' - 10); >> + continue; >> + } >> + if (nc >= 'A' && nc <= 'F') { >> + ec |= nc - ('A' - 10); >> + continue; >> + } >> + return -EINVAL; >> } >> + *op++ = ec & 0xFF; >> + *op++ = ec >> 8; >> + ip += 5; >> + i += 5; >> + } else { >> + charlen = nls->char2uni(ip, len - i, >> + (wchar_t *)op); >> + if (charlen < 0) >> + return -EINVAL; >> + ip += charlen; >> + i += charlen; >> + op += 2; >> } >> - if (i < len) >> - return -ENAMETOOLONG; >> - } else { >> - for (i = 0, ip = name, op = outname, *outlen = 0; >> - i < len && *outlen <= FAT_LFN_LEN; >> - i++, *outlen += 1) >> - { >> - *op++ = *ip++; >> - *op++ = 0; >> - } >> - if (i < len) >> - return -ENAMETOOLONG; >> } >> + if (i < len) >> + return -ENAMETOOLONG; >> } >> >> *longlen = *outlen; -- OGAWA Hirofumi