> + struct blk_integrity *bi = blk_get_integrity(bdev->bd_disk); > + unsigned int intervals; > + > + /* Last iovec contains protection information. */ > + if (!iter->nr_segs) > + return -EINVAL; > + > + iter->nr_segs--; > + pi_iov = (struct iovec *)(iter->iov + iter->nr_segs); Please don't poke into the iov_iter abstractions. This will break with PI in anything but ITER_IOVEC buffers.