mirror of https://github.com/torvalds/linux.git
dm-pcache: zero cache_info before default init
pcache_meta_find_latest() leaves whatever it last copied into the caller’s buffer even when it returns NULL. For cache_info_init(), that meant cache->cache_info could still contain CRC-bad garbage when no valid metadata exists, leading later initialization paths to read bogus flags. Explicitly memset cache->cache_info in cache_info_init_default() so new-cache paths start from a clean slate. The default sequence number assignment becomes redundant with this reset, so it drops out. Signed-off-by: Li Chen <chenl311@chinatelecom.cn> Reviewed-by: Zheng Gu <cengku@gmail.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
This commit is contained in:
parent
840b80af74
commit
a6ee8422b4
|
|
@ -181,7 +181,7 @@ static void cache_info_init_default(struct pcache_cache *cache)
|
|||
{
|
||||
struct pcache_cache_info *cache_info = &cache->cache_info;
|
||||
|
||||
cache_info->header.seq = 0;
|
||||
memset(cache_info, 0, sizeof(*cache_info));
|
||||
cache_info->n_segs = cache->cache_dev->seg_num;
|
||||
cache_info_set_gc_percent(cache_info, PCACHE_CACHE_GC_PERCENT_DEFAULT);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue