summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/block/loop/loop_file_fmt_qcow_cache.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/block/loop/loop_file_fmt_qcow_cache.c b/drivers/block/loop/loop_file_fmt_qcow_cache.c
index 658c8582ef56..7d3af7398f04 100644
--- a/drivers/block/loop/loop_file_fmt_qcow_cache.c
+++ b/drivers/block/loop/loop_file_fmt_qcow_cache.c
@@ -124,6 +124,7 @@ static int __loop_file_fmt_qcow_cache_do_get(struct loop_file_fmt *lo_fmt,
int lookup_index;
u64 min_lru_counter = U64_MAX;
int min_lru_index = -1;
+ u64 read_offset;
size_t len;
ASSERT(offset != 0);
@@ -170,9 +171,10 @@ static int __loop_file_fmt_qcow_cache_do_get(struct loop_file_fmt *lo_fmt,
c->entries[i].offset = 0;
if (read_from_disk) {
+ read_offset = offset;
len = kernel_read(lo->lo_backing_file,
__loop_file_fmt_qcow_cache_get_table_addr(c, i),
- c->table_size, &offset);
+ c->table_size, &read_offset);
if (len < 0) {
len = ret;
return ret;