ftl: simplify calculations in ftl_read()/ftl_write() and remove an out-dated check

tags/0.1.0
S.J.R. van Schaik 7 years ago
parent 849fc17eb0
commit 45736a5e9f
  1. 11
      source/ftl/ftl.c

@ -28,8 +28,7 @@ size_t ftl_read(struct ftl_map *map, void *data, size_t len, uint32_t va)
if (!data)
return 0;
mask = ((1 << map->log2_page_size) - 1);
offset = va & mask;
offset = va & ((1 << map->log2_page_size) - 1);
va >>= map->log2_page_size;
len = min(len, (1 << map->log2_page_size) - offset);
@ -48,14 +47,12 @@ size_t ftl_write(struct ftl_map *map, uint32_t va, const void *udata,
char data[1 << map->log2_page_size];
struct ftl_page_desc page_desc;
int ret;
uint32_t mask, offset, page;
uint32_t offset, page;
if (va >= ftl_get_capacity(map) &&
!is_aligned(va, 1 << map->log2_page_size))
if (va >= ftl_get_capacity(map))
return 0;
mask = ((1 << map->log2_page_size) - 1);
offset = va & mask;
offset = va & ((1 << map->log2_page_size) - 1);
va >>= map->log2_page_size;
if ((ret = trace_path(map, &page_desc, &page, va)) < 0 &&

Loading…
Cancel
Save