mufs: properly determine the va of a tree object

This commit is contained in:
S.J.R. van Schaik 2017-06-09 16:55:32 +02:00
parent f1e6f8f278
commit 3b25180038

View file

@ -169,6 +169,7 @@ static size_t read_dirent(struct mufs *fs, struct mufs_tree *tree,
return 0;
dirent->tree.fs = fs;
dirent->tree.va <<= dev->log2_block_size;
dirent->tree.va |= base & ((UINT32_C(1) << dev->log2_block_size) - 1);
dirent->tree.file_size = entry.file_size;
dirent->tree.root = entry.root;
@ -208,6 +209,8 @@ static size_t write_dirent(struct mufs_tree *tree,
dtree.root = tree->root;
dtree.depth = tree->depth;
printf("updating tree->va=%u\n", tree->va);
if (flash_write(tree->fs->dev, tree->va, &dtree, sizeof dtree) == 0)
return 0;