diff options
| author | Josef Bacik <josef@toxicpanda.com> | 2026-10-28 10:41:47 -0600 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-10-29 07:15:47 -0600 |
| commit | 26edfdee11eb2afe08fb5f874edcdf0786d6b66c (patch) | |
| tree | 1e3bb66341d2f3598e75a0ad20e6788b0aaa6dbd /drivers | |
| parent | 10b249e9b05eed0c4c65b9b89dfc2cf33d68d19a (diff) | |
block: apply the segment size to the integrity buffer
The integrity buffer is a single segment and must not exceed
max_segment_size. max_integrity_io_size() applies that limit to the data
size instead, which is off by a factor of 64 for 8 bytes of PI per 512
bytes of data. A SCSI host that doesn't set a maximum segment size gets
64KiB, lpfc and qla2xxx among them, so a DIX disk behind one of those
does no IO above 64KiB.
Limit the buffer and derive the data size from that, which makes it 4MiB
for that case.
Fixes: ec7f31b2a2d3 ("block: make bio auto-integrity deadlock safe")
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20261028164415.1262013-45-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers')
0 files changed, 0 insertions, 0 deletions
