Commit 3107a0e9 authored by Mateusz Kozlowski's avatar Mateusz Kozlowski Committed by Tomasz Zawadzki
Browse files

lib/ftl: Use ftl_nv_cache_bdev_read_blocks_with_md in compaction



If cache device is formatted with VSS, then the buffer for metadata
should be always passed, otherwise some drives may return errors on IO.
Since we don't actually care about the metadata contents, use the
ftl_nv_cache_bdev_read_blocks_with_md to pass a dummy buffer as needed.

Fixes #3681

Change-Id: Ie89a423fd5491133c1e7b1cce987583c52d17e82
Signed-off-by: default avatarMateusz Kozlowski <mateusz.kozlowski@solidigm.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26129


Reviewed-by: default avatarWojciech Malikowski <wojciech.malikowski@solidigm.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
parent 472b5869
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -802,8 +802,8 @@ compaction_process_read_entry(void *arg)
	struct spdk_ftl_dev *dev = rq->dev;
	int rc;

	rc = spdk_bdev_read_blocks(dev->nv_cache.bdev_desc, dev->nv_cache.cache_ioch,
				   entry->io_payload, entry->bdev_io.offset_blocks, entry->bdev_io.num_blocks,
	rc = ftl_nv_cache_bdev_read_blocks_with_md(dev->nv_cache.bdev_desc, dev->nv_cache.cache_ioch,
			entry->io_payload, NULL, entry->bdev_io.offset_blocks, entry->bdev_io.num_blocks,
			compaction_process_read_entry_cb, entry);

	if (spdk_unlikely(rc)) {