nvme_ctrlr_init_ana_log_page() had used cdata->mnan as active ns count to allocate a buffer and read a ANA log page into the buffer. However, cdata->mnan was larger than the real active ns count and caused an issue when the corresponding NVMe-oF target set the bit 18 of the SGL support field in the Identify Controller Data structure. We still need to use cdata->mnan to allocate the buffer because number of namespaces may be increased dynamically after initialization. Hence, rename nvme_ctrlr::ana_log_page_size to nvme_ctrlr::max_ana_log_page_size and calculate and use the active ns count to read the ANA log page. Check if the current ana_log_page_size is not larger than nvme_ctrlr->max_ana_log_page_size. Fixes issue #2584 Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ieb10b9c793c4f48ffd88d517c0e9a55184b7d935 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13653 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> |
||
---|---|---|
.. | ||
accel | ||
bdev | ||
blob | ||
blobfs | ||
env_dpdk | ||
event | ||
scheduler | ||
sock | ||
Makefile |