> +     if (blk_rq_nr_phys_segments(req) != 2)
> +             return BLK_STS_IOERR;

The magic number of segments adding up source and dest really need
constants and helpers to make the code understandable.

> +     /* +1 shift as dst+src length is added in request merging, we send copy
> +      * for half the length.
> +      */
> +     n_lba = blk_rq_bytes(req) >> (ns->lba_shift + 1);

I do not understand the logic and comment here.

> +     if (WARN_ON(!n_lba))

WARN_ON_ONCE

> +             return BLK_STS_NOTSUPP;

and BLK_STS_NOTSUPP seems like the wrong error here, this is an
invalid argument.

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel

Reply via email to