pyocf: add FLUSH flag

Flush I/O must be recognized by the bottom adapter by inspecting
adapter specific flags

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
This commit is contained in:
Adam Rutkowski 2022-05-16 13:32:36 +02:00
parent 9646df431f
commit 07c7db81f4

View File

@ -22,6 +22,7 @@ from ctypes import (
)
from hashlib import md5
import weakref
from enum import IntEnum
from .io import Io, IoOps, IoDir
from .queue import Queue
@ -32,6 +33,10 @@ from .data import Data
from .queue import Queue
class IoFlags(IntEnum):
FLUSH = 1
class VolumeCaps(Structure):
_fields_ = [("_atomic_writes", c_uint32, 1)]
@ -350,6 +355,11 @@ class RamVolume(Volume):
discard.contents._end(discard, -OcfErrorCode.OCF_ERR_NOT_SUPP)
def do_submit_io(self, io):
flags = int(io.contents._flags)
if flags & IoFlags.FLUSH:
self.do_submit_flush(io)
return
try:
io_priv = cast(OcfLib.getInstance().ocf_io_get_priv(io), POINTER(VolumeIoPriv))
offset = io_priv.contents._offset