• Justin Tee's avatar
    block: fix memleak of bio integrity data · ece841ab
    Justin Tee authored
    7c20f116 ("bio-integrity: stop abusing bi_end_io") moves
    bio_integrity_free from bio_uninit() to bio_integrity_verify_fn()
    and bio_endio(). This way looks wrong because bio may be freed
    without calling bio_endio(), for example, blk_rq_unprep_clone() is
    called from dm_mq_queue_rq() when the underlying queue of dm-mpath
    is busy.
    
    So memory leak of bio integrity data is caused by commit 7c20f116.
    
    Fixes this issue by re-adding bio_integrity_free() to bio_uninit().
    
    Fixes: 7c20f116 ("bio-integrity: stop abusing bi_end_io")
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by Justin Tee <justin.tee@broadcom.com>
    
    Add commit log, and simplify/fix the original patch wroten by Justin.
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    ece841ab
bio.c 54.1 KB