Spdk/include/spdk
Jim Harris 4300c62167 nvme: add spdk_nvme_ctrlr_disable_read_changed_ns_list_log_page()
Commit a119799b ("test/nvme/aer: remove duplicated changed NS list log")
changed the nvme driver to read the CHANGED_NS_LIST log page before
calling the application's AER callback (previously it would read it
after).

Commit b801af090 ("nvme: add disable_read_changed_ns_list_log_page")
added a new ctrlr_opts member to allow the application to tell the
driver to not read this log page, and will read the log page itself
instead to clear the AEN.  But we cannot add this option to the 22.01
LTS branch since it breaks the ABI.  So adding this API here, which
can then be backported manually to the 22.01 branch for LTS users
that require it.

Restoring the old behavior is not correct for applications that
want to consume the CHANGED_NS_LIST log page contents itself to
know which namespaces have changed.  Even if the driver reads the
log page after the application, that read could happen during a
small window between when a namespace change event has occurred and
the AEN has been sent to the host.  The only safe way for the
application to consume ChANGED_NS_LIST log page contents itself
is to make sure the driver never issues such a log page request
itself.

Fixes issue #2647.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Iaeffe23dc7817c0c94441a36ed4d6f64a1f15a4e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14134
Reviewed-by: Michael Haeuptle <michaelhaeuptle@gmail.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Dong Yi <dongx.yi@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-08-25 07:31:44 +00:00
..
accel.h accel: Rename public header to accel.h 2022-08-16 10:22:55 +00:00
assert.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
barrier.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
base64.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
bdev_module.h Bdev: remove the QD poller at the time of Bdev unregister 2022-06-28 18:13:02 +00:00
bdev_zone.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
bdev.h bdev: make opts structures packed 2022-08-18 10:08:40 +00:00
bit_array.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
bit_pool.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
blob_bdev.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
blob.h blob: make opts structures packed 2022-08-18 10:08:40 +00:00
blobfs_bdev.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
blobfs.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
conf.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
cpuset.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
crc16.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
crc32.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
dif.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
dma.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
endian.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
env_dpdk.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
env.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
event.h event: make opts structures packed 2022-08-18 10:08:40 +00:00
fd_group.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
fd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
file.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ftl.h FTL: Add compaction logic 2022-08-19 17:37:14 +00:00
gpt_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
histogram_data.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
idxd_spec.h lib/idxd: add some flag overrides when doing PMEM writes 2022-08-18 18:47:02 +00:00
idxd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
init.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ioat_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ioat.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
iscsi_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
json.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
jsonrpc.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
likely.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
log.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
lvol.h blobstore: implement spdk_bs_grow and bdev_lvol_grow_lvstore RPC 2022-06-28 17:55:43 +00:00
memory.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
mmio.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nbd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
notify.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_intel.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_ocssd_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_ocssd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme_spec.h nvme: add support for verify command 2022-08-16 10:25:01 +00:00
nvme_zns.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme.h nvme: add spdk_nvme_ctrlr_disable_read_changed_ns_list_log_page() 2022-08-25 07:31:44 +00:00
nvmf_cmd.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvmf_fc_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvmf_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvmf_transport.h lib/nvmf: add lock around few transport ops 2022-07-29 16:34:41 +00:00
nvmf.h nvmf: make opts structures packed 2022-08-18 10:08:40 +00:00
opal_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
opal.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pci_ids.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pipe.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
queue_extras.h include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
queue.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
reduce.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
rpc.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
scheduler.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
scsi_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
scsi.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
sock.h sock: make opts structures packed 2022-08-18 10:08:40 +00:00
stdinc.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
string.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
thread.h thread: let spdk_thread_create() accept const spdk_cpuset* 2022-06-24 07:22:53 +00:00
trace_parser.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
trace.h nvme/pcie, nvme/tcp: add cb_arg context tracepoint argument 2022-08-19 11:06:31 +00:00
tree.h util: rename RB_ROOT into _RB_ROOT 2021-06-04 22:46:40 +00:00
util.h util: Extract a common lib between iovs and buf. 2022-06-20 10:01:15 +00:00
uuid.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
version.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
vfio_user_pci.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
vfio_user_spec.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
vhost.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
vmd.h include/spdk/vmd.h: Remove unused config.h include from vmd.h 2022-06-23 07:45:28 +00:00
zipf.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00