Spdk/lib/bdev
Vitaliy Mysak b6765e8efa ocf: fix offset check
This patch fixes submission of partial IOs in bottom adapter

Existing check (if offset > 0) was not sufficient to detect partial IOs
  because there could be an IO with offset = 0 but length < total size of iovs.
This patch changes the check, but also free operation on completion
  because now the old free does not cover all situations when we allocate iovs.

`Partial IOs` are the IOs handled by bottom adapter
  which specify only part of the internal iovs vector.
So their length is less that the length of internal iovs vector.
They exist because sometimes parts of single IO from top adapter
  need to be sent to different locations.
Also, in general, IOs initiated by OCF (such as cleaner IOs) are represented
  as single big iov that is submitted by parts in form of 'Partial IOs'.

Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455821 (master)

(cherry picked from commit 2bfa860dfe)
Change-Id: I8ae47659fb34904c593a696d74d683a418ac9962
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457587
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-06-18 19:01:37 +00:00
..
aio bdev/aio: cleanup bdev_aio.h 2019-03-01 13:03:55 +00:00
compress bdev/compress: fix issues with delete 2019-06-18 03:17:06 +00:00
crypto bdev/crypto: add new uninit call needed for dpdk 19.02 2019-04-24 22:00:10 +00:00
error bdev: make spdk_bdev_register_module_xxx function names predictable 2019-02-11 23:56:53 +00:00
gpt bdev: switch to spdk_*malloc(). 2019-04-09 06:30:42 +00:00
iscsi bdev/iscsi: fix iscsi bdev wrong lun id 2019-04-01 01:16:51 +00:00
lvol bdev: deprecate spdk_vbdev_register 2019-04-04 08:28:31 +00:00
malloc bdev: Make malloc bdev use the new zero copy mechanism 2019-04-23 18:38:39 +00:00
null bdev/null : Clean up module resources that failed to initialize. 2019-04-24 22:25:47 +00:00
nvme bdev/nvme: fix issue about coredump which caused by assert error. 2019-04-22 15:23:11 +00:00
ocf ocf: fix offset check 2019-06-18 19:01:37 +00:00
passthru bdev/passthru: call spdk_bdev_module_release_bdev in the error path of registration 2019-06-18 03:17:06 +00:00
pmem bdev: process failure of spdk_bdev_io_get_buf_cb in each bdev module 2019-02-27 07:28:15 +00:00
raid bdev/raid: Make destroy_raid_bdev RPC wait for completion by callback 2019-06-16 08:46:05 +00:00
rbd bdev: process failure of spdk_bdev_io_get_buf_cb in each bdev module 2019-02-27 07:28:15 +00:00
rpc bdev: remove delete_bdev RPC 2019-03-01 08:50:07 +00:00
split bdev: make spdk_bdev_register_module_xxx function names predictable 2019-02-11 23:56:53 +00:00
uring bdev: Add io_uring bdev module 2019-03-22 18:51:48 +00:00
virtio virtio: switch to spdk_*malloc(). 2019-03-28 07:39:31 +00:00
bdev.c bdev: don't call spdk_bdev_free_io() for the error case 2019-06-18 19:00:37 +00:00
Makefile bdev/compress: add compression vbdev module 2019-03-27 14:51:22 +00:00
part.c bdev: deprecate spdk_vbdev_register 2019-04-04 08:28:31 +00:00
scsi_nvme.c bdev: move error union to internal spdk_bdev_io struct 2018-06-26 20:04:07 +00:00
vtune.c mk: don't use '-include spdk/config.h' 2018-10-02 23:13:32 +00:00