[U-Boot] [PATCH] fs/ext4: caculate log2blksz from blksz, other its value = 0

Dennis Lan (dlan) dennis.yxun at gmail.com
Fri Jul 19 14:36:33 CEST 2013


On Fri, Jun 28, 2013 at 9:47 AM, Dennis Lan (dlan)
<dennis.yxun at gmail.com> wrote:
> Hi Albert, Eich
>
> On Thu, Jun 27, 2013 at 6:17 PM, Albert ARIBAUD
> <albert.u.boot at aribaud.net> wrote:
>> Hi Lan,
>>
>> On Thu, 27 Jun 2013 17:42:31 +0800, "Lan Yixun (dlan)"
>> <dennis.yxun at gmail.com> wrote:
>>
>>> From: "Lan Yixun (dlan)" <dennis.yxun at gmail.com>
>>>
>>> err:
>>> lt703a # ext4ls nand 3:0
>>> Failed to mount ext2 filesystem...
>>> ** Unrecognized filesystem type **
>>>
>>> bug may introduced by commit:
>>>
>>> commit 50ce4c07df1c98aabf4630b35152ed95a87242f7
>>> Author: Egbert Eich <eich at suse.com>
>>> Date:   Wed May 1 01:13:19 2013 +0000
>>>
>>>     fs/ext4: Support device block sizes != 512 bytes
>>
>> Please make the commit summary a description of what is wrong and how
>> it is fixed, and move the context (how the bug was found, console
>> output, etc) after the commit message separator '---' below.
>>
>> Also, fix probably typo in the commit summary (first commit message
>> line) ("other" for "otherwise").
>>
> Thanks for your comments
> I'm sending this patch mainly for pre-review, Eich, Can you have a look?
> Since you are original patch author.
>
> The problem here is that uboot can't mount ext4 filesystem with
> commit "50ce4c07df1" applied. As I looking into the code,
>  we use hard-coded "SECTOR_SIZE"(512) previously,
>  but now we introduce (block_dev_desc_t *)->log2blksz,
> and problem here is that I couldn't find where/when this value been set.
> And after calling do_ls()->fs_set_blk_dev(), the value of log2blksz
> we got is still 0 (initialized value), which I think it's not correct.
> As I haven't dig too much into the code, and just cook this as a quick fix..
>
> I'm trying to solve this by calculating log2blksz from blksz.
>
>
>
>>> Signed-off-by: Lan Yixun (dlan) <dennis.yxun at gmail.com>
>>> ---
>>>  disk/part.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/disk/part.c b/disk/part.c
>>> index fc8404d..dbc94c4 100644
>>> --- a/disk/part.c
>>> +++ b/disk/part.c
>>> @@ -551,6 +551,8 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
>>>                       goto cleanup;
>>>               }
>>>
>>> +             (*dev_desc)->log2blksz = LOG2((*dev_desc)->blksz);
>>> +
>>>               info->start = 0;
>>>               info->size = (*dev_desc)->lba;
>>>               info->blksz = (*dev_desc)->blksz;
>>> @@ -634,6 +636,8 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
>>>               goto cleanup;
>>>       }
>>>
>>> +     (*dev_desc)->log2blksz = LOG2((*dev_desc)->blksz);
>>> +
>>>       ret = part;
>>>       goto cleanup;
>>>
>>
>>
>> Amicalement,
>> --
>> Albert.

hi Eich, Albert:

ping, any comments? or should I send another patch as v2?


More information about the U-Boot mailing list