mufs: get proper virtual address in mufs_shrink_tree()

tags/0.1.0
S.J.R. van Schaik 8 years ago
parent 5164ded1fe
commit 7125ddadf9
  1. 8
      source/fs/mufs/tree.c

@ -190,7 +190,8 @@ int mufs_shrink_tree(struct mufs_tree *tree, uint32_t max_size)
dev->log2_block_size);
if (index <= 1) {
if (flash_read(dev, base, &tree->root, sizeof tree->root) == 0)
if (flash_read(dev, (base << dev->log2_block_size), &tree->root,
sizeof tree->root) == 0)
return -1;
--tree->depth;
@ -200,8 +201,9 @@ int mufs_shrink_tree(struct mufs_tree *tree, uint32_t max_size)
continue;
}
if (flash_write0(dev, base + index * sizeof(uint32_t), (UINT32_C(1) <<
dev->log2_block_size) - index * sizeof(uint32_t)) == 0)
if (flash_write0(dev, (base << dev->log2_block_size) +
index * sizeof(uint32_t), (UINT32_C(1) << dev->log2_block_size) -
index * sizeof(uint32_t)) == 0)
return -1;
if (flash_sync(dev) < 0)

Loading…
Cancel
Save