Commit 9900e48d authored by Rafal Stefanowski's avatar Rafal Stefanowski Committed by Jim Harris
Browse files

bdev/ocf: Update OCF to 21.6.3.1



This OCF update is mainly focused on:
- Fix OCF crash when handling flush I/O with large size

Previous implementation attempts to use cache data I/O interface
(ocf_submit_cache_reqs function) instead of submitting empty flush to
the underlying cache device. This function is designed to read/write
from mapped cachelines while there is no traversation/mapping
performed on flush I/O.
If request map allocation succeeds, this results in sending I/O to
addres 0 with size and flags inherited from the top adapter I/O.
This doesn't make any sense, and can even result in invalid I/O if the
size is greater than cache device size.
Even worse, if flush request map allocation fails (which happens
always in case of large flush requests) then the erroneous call to
ocf_submit_cache_reqs results in NULL pointer dereference.

Other fixes included in this OCF update:
- Fix race condition in fast path
- Fix use after free during metadata load
- Fix cleaner hung after cleaning policy switch
- Fix use after free during volume close
- Fix stack overflow when trying to insert to disabled io class
  and the sequential cutoff is on

Signed-off-by: default avatarRafal Stefanowski <rafal.stefanowski@intel.com>
Change-Id: Id38f54df7b6c58c84f7f15f4354530755eb9171f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12744


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent c77f17a5
Loading
Loading
Loading
Loading
Compare 865d29d0 to 4477cb55
Original line number Diff line number Diff line
Subproject commit 865d29d0cb93a71ce37a8410914c35005aa6ed54
Subproject commit 4477cb55a0bcd313a5ebcfdf877ca76a31695df7