diff options
-rw-r--r-- | drivers/block/loop/loop_file_fmt_qcow_cache.c | 4 |
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; |