• Linus Torvalds's avatar
    btrfs: fix lzo_decompress_bio() kmap leakage · 2cf3f813
    Linus Torvalds authored
    Commit ccaa66c8 reinstated the kmap/kunmap that had been dropped in
    commit 8c945d32 ("btrfs: compression: drop kmap/kunmap from lzo").
    
    However, it seems to have done so incorrectly due to the change not
    reverting cleanly, and lzo_decompress_bio() ended up not having a
    matching "kunmap()" to the "kmap()" that was put back.
    
    Also, any assert that the page pointer is not NULL should be before the
    kmap() of said pointer, since otherwise you'd just oops in the kmap()
    before the assert would even trigger.
    
    I noticed this when trying to verify my btrfs merge, and things not
    adding up.  I'm doing this fixup before re-doing my merge, because this
    commit needs to also be backported to 5.15 (after verification from the
    btrfs people).
    
    Fixes: ccaa66c8 ("Revert 'btrfs: compression: drop kmap/kunmap from lzo'")
    Cc: David Sterba <dsterba@suse.com>
    Cc: stable@kernel.org
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2cf3f813
lzo.c 11.4 KB