ftl: sync dirty writes before reading or trimming
This commit is contained in:
parent
070c36a361
commit
25774eaab5
1 changed files with 6 additions and 0 deletions
|
@ -28,6 +28,9 @@ size_t ftl_read(struct ftl_map *map, void *data, size_t len, uint32_t va)
|
|||
if (!data)
|
||||
return 0;
|
||||
|
||||
if (ftl_sync(map) < 0)
|
||||
return 0;
|
||||
|
||||
offset = va & ((1 << map->log2_page_size) - 1);
|
||||
va >>= map->log2_page_size;
|
||||
len = min(len, (1 << map->log2_page_size) - offset);
|
||||
|
@ -150,6 +153,9 @@ int ftl_trim(struct ftl_map *map, uint32_t va)
|
|||
uint32_t alt_page, page;
|
||||
int ret;
|
||||
|
||||
if (ftl_sync(map) < 0)
|
||||
return -1;
|
||||
|
||||
if ((ret = trace_path(map, &page_desc, &page, va)) < 0) {
|
||||
if (ret == -ERR_NOT_FOUND)
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue