Re: [PATCH v2] fat: eliminate iterations in fat_search_long and__fat_readdir in case of EOD

From: Namjae Jeon
Date: Fri Feb 08 2013 - 21:15:50 EST


2013/2/8, OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>:
> Namjae Jeon <linkinjeon@xxxxxxxxx> writes:
>
>>> And did this work correctly about f_pos for readdir?
>> Yes, sure. f_pos is work correctly about each directory entry. because
>> after name[0] == 0x00, there are no allocated directory entires.
>>>
>>> I'm not thinking about f_pos deeply though, it may have something
>>> wrong. Because it stops at middle of cluster.
>> Plz See the below descirption about name[0] in FAT spec.
>> ---------------------------------------------------------------------------------------------------------------------
>> If DIR_Name[0] == 0x00, then the directory entry is free (same as for
>> 0xE5), and there are no allocated directory entries after this one
>> (all of the DIR_Name[0] bytes in all of the entries after this one are
>> also set to 0).
>> The special 0 value, rather than the 0xE5 value, indicates to FAT file
>> system driver code that the rest of the entries in this directory do
>> not need to be examined because they are all free.
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> I think that lookuping entry till the end of cluster is not needed.
>> Let me know your opinion.
>
> I know it though. There is seek() and broken drivers adds entries after
> name[0] == 0. I think we don't need to care much about broken drivers
> though. Even if so, kernel should not be crash, and corrupts fs more.
Yes, Right. I understood. Plz ignore this patch.
>
>> And Would you tell me your opinion about fat exportfs ?
>
> Ah, I was thinking I did. But it seems I didn't actually. Can you post
> full of series? So, I can review and probably we can start to test it.
Okay, I will post full patch-set today.

Thanks OGAWA.
>
> Thanks.
> --
> OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/