summaryrefslogtreecommitdiff
path: root/disk
diff options
context:
space:
mode:
authorLan Yixun (dlan) <dennis.yxun@gmail.com>2013-07-20 00:17:59 (GMT)
committerTom Rini <trini@ti.com>2013-07-22 14:09:56 (GMT)
commit50ffc3b64aa3c8113f0a9fc31ea96e596d60054a (patch)
tree85dd55eb8f111aa4819f7171e52333df28a35607 /disk
parent8b415f703f88d1d3b0466830047affbbf7f24913 (diff)
downloadu-boot-50ffc3b64aa3c8113f0a9fc31ea96e596d60054a.tar.xz
fs/ext4: fix log2blksz un-initialized error, by cacaulating its value from blksz
The problem here is that uboot can't mount ext4 filesystem with commit "50ce4c07df1" applied. We use hard-coded "SECTOR_SIZE"(512) before this commit, now we introduce (block_dev_desc_t *)->log2blksz to replace this macro. And after we calling do_ls()->fs_set_blk_dev(), the variable log2blksz is not initialized, which it's not correct. And this patch try to solve the problem by caculating the value of log2blksz from variable blksz.
Diffstat (limited to 'disk')
-rw-r--r--disk/part.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/disk/part.c b/disk/part.c
index d73625c..9400a97 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -548,6 +548,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;
@@ -631,6 +633,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;