blob: fix a wrong memset parameter
A wrong parameter is passed to memset when loading blob->active.clusters, this leads to an unpredictable wrong lba value using thin provision LVOLs while submitting IO requests, thus causes EIO error using QEMU vms. Signed-off-by: Sochin Jiang <jiangxiaoqing.sochin@bytedance.com> Change-Id: Iecea80cfa58f7a025603430d666fd9cd4d3fea8b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2431 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Xiaodong Liu <xiaodong.liu@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
parent
8d69fd9139
commit
e230d49ae2
@ -1381,7 +1381,7 @@ _spdk_blob_load_cpl_extents_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserr
|
||||
_spdk_blob_load_final(ctx, -ENOMEM);
|
||||
return;
|
||||
}
|
||||
memset(tmp + blob->active.cluster_array_size, 0,
|
||||
memset(tmp + sizeof(*blob->active.clusters) * blob->active.cluster_array_size, 0,
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user