open-cas-linux/modules/cas_cache
Robert Baldyga e4d4750f96 Don't propagate bio flags to OCF for discard I/O
One of the steps of discarding data in cache is invalidating OCF metadata.
If a cache line which is supposed to be discarded is dirty, invalidating
it will require flushing metadata. Unfortunately, OCF allocates flushing
requests with the exactly the same flags as the original IO (in this case
discard flag is set) so the page on the disk is discarded instead of being
flushed. In case of power failure occurring before the metadata is flushed
to the disk, the data may be corrupted even if recovery will succeed.

Disabling propagation of original I/O flags for discard requests solves
this problem.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-03-16 13:44:44 +01:00
..
utils Remove unused error code 2022-03-09 15:52:47 +01:00
volume Don't propagate bio flags to OCF for discard I/O 2022-03-16 13:44:44 +01:00
.gitignore Initial commit 2019-03-29 08:45:50 +01:00
cas_cache.h Fix license 2021-10-28 12:46:42 +02:00
classifier_defs.h Fix license 2021-10-28 12:46:42 +02:00
classifier.c Fix license 2021-10-28 12:46:42 +02:00
classifier.h Fix license 2021-10-28 12:46:42 +02:00
context.c Fix license 2021-10-28 12:46:42 +02:00
context.h Fix license 2021-10-28 12:46:42 +02:00
control.c Fix license 2021-10-28 12:46:42 +02:00
control.h Fix license 2021-10-28 12:46:42 +02:00
layer_cache_management.c Merge pull request #1088 from robertbaldyga/activate-ignore-part-check 2022-03-10 21:32:44 +01:00
layer_cache_management.h Redesign failover standby management 2022-01-05 16:17:52 +01:00
linux_kernel_version.h Fix license 2021-10-28 12:46:42 +02:00
main.c Remove "metadata_layout" module parameter 2022-03-08 08:53:47 +01:00
Makefile Fix license 2021-10-28 12:46:42 +02:00
ocf_env_headers.h Fix license 2021-10-28 12:46:42 +02:00
ocf_env.c Fix license 2021-10-28 12:46:42 +02:00
ocf_env.h Fix license 2021-10-28 12:46:42 +02:00
service_ui_ioctl.c Redesign failover standby management 2022-01-05 16:17:52 +01:00
service_ui_ioctl.h Fix license 2021-10-28 12:46:42 +02:00
threads.c Fix license 2021-10-28 12:46:42 +02:00
threads.h Fix license 2021-10-28 12:46:42 +02:00