> +static int bio_integrity_generate_verify(struct bio *bio, int operate)
>  {

> +     if (operate)
> +             sector = bio->bi_iter.bi_sector;
> +     else
> +             sector = bio->bi_integrity->bip_iter.bi_sector;

> +             if (operate) {
> +                     bi->generate_fn(&bix);
> +             } else {
> +                     ret = bi->verify_fn(&bix);
> +                     if (ret) {
> +                             kunmap_atomic(kaddr);
> +                             return ret;
> +                     }
> +             }

I was glad to see this replaced with explicit sector and func arguments
in later refactoring in the 6/ patch.

But I don't think the function poiner casts in that 6/ patch are wise
(Or even safe all the time, given crazy function pointer trampolines?
Is that still a thing?).  I'd have made a single walk_fn type that
returns and have the non-returning iterators just return 0.

- z
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to