|
|
|
@ -382,7 +382,9 @@ int trace_path(struct ftl_map *map, struct ftl_page_desc *new_page_desc, |
|
|
|
|
uint8_t depth = 0; |
|
|
|
|
uint32_t upage = map->root; |
|
|
|
|
|
|
|
|
|
if ((map->flags & FTL_CACHED_VA) && map->last_va == va) { |
|
|
|
|
#if 0 |
|
|
|
|
/* FIXME */ |
|
|
|
|
if (!new_page_desc && (map->flags & FTL_CACHED_VA) && map->last_va == va) { |
|
|
|
|
if (map->flags & FTL_UNMAPPED) |
|
|
|
|
return -1; |
|
|
|
|
|
|
|
|
@ -391,6 +393,9 @@ int trace_path(struct ftl_map *map, struct ftl_page_desc *new_page_desc, |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
map->flags &= ~(FTL_CACHED_VA | FTL_UNMAPPED); |
|
|
|
|
|
|
|
|
|
if (new_page_desc) |
|
|
|
|
new_page_desc->va = va; |
|
|
|
@ -428,7 +433,6 @@ int trace_path(struct ftl_map *map, struct ftl_page_desc *new_page_desc, |
|
|
|
|
*page = upage; |
|
|
|
|
|
|
|
|
|
map->flags |= FTL_CACHED_VA; |
|
|
|
|
map->flags &= ~FTL_UNMAPPED; |
|
|
|
|
map->last_va = va; |
|
|
|
|
map->last_pa = upage; |
|
|
|
|
|
|
|
|
|