On Wed, Feb 16, 2022 at 08:51:08AM -0500, Mikulas Patocka wrote: > > > On Mon, 7 Feb 2022, Nitesh Shetty wrote: > > > Before enabling copy for dm target, check if underlaying devices and > > dm target support copy. Avoid split happening inside dm target. > > Fail early if the request needs split, currently spliting copy > > request is not supported > > > > Signed-off-by: Nitesh Shetty > > If a dm device is reconfigured, you must invalidate all the copy tokens > that are in flight, otherwise they would copy stale data. > > I suggest that you create a global variable "atomic64_t dm_changed". > In nvme_setup_copy_read you copy this variable to the token. > In nvme_setup_copy_write you compare the variable with the value in the > token and fail if there is mismatch. > In dm.c:__bind you increase the variable, so that all the tokens will be > invalidated if a dm table is changed. > > Mikulas > > Yes, you are right about the reconfiguration of dm device. But wouldn't having a single global counter(dm_changed), will invalidate for all in-flight copy IO's across all dm devices. Is my understanding correct? -- Nitesh Shetty