Messages in this thread Patch in this message | | | Date | Sun, 4 Mar 2012 14:16:05 +0900 | Subject | Re: [PATCH 1/2] fat: Clean up xlate_to_uni. | From | Namjae Jeon <> |
| |
Hi. Andrew.
I tried to forward to you by ogawa request. Would you plz check this patch ? ----------------------------------------------------------------------------------------------------------- From OGAWA Hirofumi. 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 <hirofumi@mail.parknet.co.jp> -------------------------------------------------------------------------------------------------------------
Thanks.
2012/3/4 OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>: > OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> writes: > >> Namjae Jeon <linkinjeon@gmail.com> 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 <hirofumi@mail.parknet.co.jp> > > Sigh. My ISP's smtp seems to be blocked due to BRBL. Please forward to akpm. > >>> Signed-off-by: Namjae Jeon <linkinjeon@gmail.com> >>> Signed-off-by: Ravishankar N <cyberax82@gmail.com> >>> --- >>> 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 <hirofumi@mail.parknet.co.jp>
| |