aboutsummaryrefslogtreecommitdiffstats
path: root/rust/helpers.c
diff options
context:
space:
mode:
authorChristoph Hellwig <[email protected]>2024-07-02 15:10:23 +0000
committerJens Axboe <[email protected]>2024-07-03 16:21:16 +0000
commit85253bac4d02b1f95d6109c221aeccd7a262ec4d (patch)
tree14ebb70a5ead12a05e1b4d1270241c399ca00994 /rust/helpers.c
parentblock: call bio_integrity_unmap_free_user from blk_rq_unmap_user (diff)
downloadkernel-85253bac4d02b1f95d6109c221aeccd7a262ec4d.tar.gz
kernel-85253bac4d02b1f95d6109c221aeccd7a262ec4d.zip
block: don't free submitter owned integrity payload on I/O completion
Currently __bio_integrity_endio frees the integrity payload unless it is explicitly marked as user-mapped. This means in-kernel callers that allocate their own integrity payload never get to see it on I/O completion. The current two users don't need it as they just pre-mapped PI tuples received over the network, but this limits uses of integrity data lot. Change bio_integrity_endio to call __bio_integrity_endio for block layer generated integrity data only, and leave freeing of submitter allocated integrity data to bio_uninit which also gets called from the final bio_put. This requires that unmapping user mapped or copied integrity data is now always done by the caller, and the special BIP_INTEGRITY_USER flag can go away. Signed-off-by: Christoph Hellwig <[email protected]> Reviewed-by: Johannes Thumshirn <[email protected]> Reviewed-by: Kanchan Joshi <[email protected]> Reviewed-by: Martin K. Petersen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'rust/helpers.c')
0 files changed, 0 insertions, 0 deletions