flash: return size for flash_read() and flash_write()
This commit is contained in:
parent
d631e3012e
commit
937521c909
7 changed files with 59 additions and 41 deletions
|
@ -53,7 +53,10 @@ int read_page_group(struct ftl_map *map,
|
|||
page = ((group_no + 1) << map->log2_pages_per_group) - 1;
|
||||
addr = page << map->log2_page_size;
|
||||
|
||||
return flash_read(map->dev, addr, group, sizeof *group);
|
||||
if (flash_read(map->dev, addr, group, sizeof *group) == 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Given the page number of a user page, reads the page descriptor associated
|
||||
|
@ -71,7 +74,10 @@ int read_page_desc(struct ftl_map *map,
|
|||
offset = sizeof(struct ftl_page_group) +
|
||||
(upage & ((1 << map->log2_pages_per_group) - 1)) * sizeof *page_desc;
|
||||
|
||||
return flash_read(map->dev, addr + offset, page_desc, sizeof *page_desc);
|
||||
if (flash_read(map->dev, addr + offset, page_desc, sizeof *page_desc) == 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Writes the page descriptor to the footer of the current page group and
|
||||
|
@ -93,14 +99,14 @@ static int write_page_desc(struct ftl_map *map,
|
|||
group.epoch = map->epoch;
|
||||
group.tail = map->tail;
|
||||
|
||||
if (flash_write(map->dev, addr, &group, sizeof group) < 0)
|
||||
if (flash_write(map->dev, addr, &group, sizeof group) == 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
offset = sizeof group + (map->head & ((1 << map->log2_pages_per_group) - 1)) *
|
||||
sizeof *page_desc;
|
||||
|
||||
if (flash_write(map->dev, addr + offset, page_desc, sizeof *page_desc) < 0)
|
||||
if (flash_write(map->dev, addr + offset, page_desc, sizeof *page_desc) == 0)
|
||||
return -1;
|
||||
|
||||
map->root = map->head;
|
||||
|
@ -126,7 +132,7 @@ int write_upage(struct ftl_map *map, const void *page,
|
|||
return -1;
|
||||
|
||||
if (page && flash_write(map->dev, map->head << map->log2_page_size, page,
|
||||
map->log2_page_size) < 0)
|
||||
map->log2_page_size) == 0)
|
||||
return -1;
|
||||
|
||||
return write_page_desc(map, page_desc);
|
||||
|
@ -179,7 +185,7 @@ static int find_block(struct ftl_map *map, struct ftl_page_group *group,
|
|||
page = block << map->log2_block_size;
|
||||
page |= ((UINT32_C(1) << map->log2_pages_per_group) - 1) << map->log2_page_size;
|
||||
|
||||
if (flash_read(map->dev, page, group, sizeof *group) < 0)
|
||||
if (flash_read(map->dev, page, group, sizeof *group) == 0)
|
||||
continue;
|
||||
|
||||
if (memcmp(group->magic, "FTL", sizeof group->magic) != 0)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue