lib/blob: fix clearing cluser array on EP load

sz is set to number of clusters that should be have been
in particular unallocated EP (remaining_clusters_in_et
up to SPDK_EXTENTS_PER_EP).

The cluster array should be set to 0 only in region
between original size (cluster_array_size) and new
total size (active.num_clusters).
It was incorrectly using sz in the memset.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Ic43e89c17d53e9529e3ed0349aeb4fb7dc6593f2
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/482858
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Tomasz Zawadzki 2020-01-27 08:35:02 -05:00
parent 8b6df6fbab
commit 1dd8c57ab8

View File

@ -1380,7 +1380,7 @@ _spdk_blob_load_cpl_extents_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserr
return;
}
memset(tmp + blob->active.cluster_array_size, 0,
sizeof(*blob->active.clusters) * (sz - blob->active.cluster_array_size));
sizeof(*blob->active.clusters) * (blob->active.num_clusters - blob->active.cluster_array_size));
blob->active.clusters = tmp;
blob->active.cluster_array_size = blob->active.num_clusters;
}