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

From: OGAWA Hirofumi
Date: Fri Feb 08 2013 - 02:15:00 EST


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.

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

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/