mufs: calculate proper byte offsets in mufs_read()/mufs_write()
This commit is contained in:
parent
8f74da799e
commit
55ce3b8798
1 changed files with 7 additions and 2 deletions
|
@ -177,7 +177,8 @@ static size_t mufs_do_read(struct mufs *fs, struct mufs_tree *tree,
|
|||
if (mufs_lookup_page(fs, tree, &page, va) < 0)
|
||||
return 0;
|
||||
|
||||
return flash_read(fs->dev, page, data, len);
|
||||
return flash_read(fs->dev, (page << fs->dev->log2_block_size) + offset,
|
||||
data, len);
|
||||
}
|
||||
|
||||
size_t mufs_read(struct mufs *fs, struct mufs_tree *tree, void *data,
|
||||
|
@ -209,10 +210,14 @@ static size_t mufs_do_write(struct mufs *fs, struct mufs_tree *tree,
|
|||
memset(data, 0, len);
|
||||
len = min(len, (UINT32_C(1) << fs->dev->log2_block_size) - offset);
|
||||
|
||||
if (mufs_extend_tree(fs, tree, 1) < 0)
|
||||
return 0;
|
||||
|
||||
if (mufs_alloc_page(fs, tree, &page, va) < 0)
|
||||
return 0;
|
||||
|
||||
return flash_write(fs->dev, page, data, len);
|
||||
return flash_write(fs->dev, (page << fs->dev->log2_block_size) + offset,
|
||||
data, len);
|
||||
}
|
||||
|
||||
size_t mufs_write(struct mufs *fs, struct mufs_tree *tree, void *data,
|
||||
|
|
Loading…
Add table
Reference in a new issue