Memory leak in block I/O (ext4) for 4.7-rc1 - bisected to commit 9082e87bfbf8

From: Larry Finger
Date: Fri Jun 03 2016 - 17:31:58 EST


Several memory leaks of the type shown below are reported by kmemleak for the block I/O system, and ext4 in particular:

unreferenced object 0xffff8801ff71f500 (size 256):
comm "kworker/u16:4", pid 76, jiffies 4294707552 (age 97.892s)
hex dump (first 32 bytes):
c0 20 08 00 00 ea ff ff 00 10 00 00 00 00 00 00 . ..............
c0 20 08 00 00 ea ff ff 00 10 00 00 00 00 00 00 . ..............
backtrace:
[<ffffffff8178f6fe>] kmemleak_alloc+0x4e/0xb0
[<ffffffff811fea5c>] kmem_cache_alloc+0xdc/0x300
[<ffffffff813af4dc>] bvec_alloc+0x5c/0xf0
[<ffffffff813af714>] bio_alloc_bioset+0x1a4/0x2a0
[<ffffffff813c1d94>] next_bio+0x24/0x50
[<ffffffff813c2220>] blkdev_issue_zeroout+0xe0/0x1d0
[<ffffffff812b9618>] ext4_issue_zeroout+0x38/0x50
[<ffffffff812e3d4f>] ext4_ext_zeroout+0x2f/0x40
[<ffffffff812e89dc>] ext4_ext_convert_to_initialized+0x28c/0x920
[<ffffffff812eb572>] ext4_ext_map_blocks+0x16e2/0x1940
[<ffffffff812b9753>] ext4_map_blocks+0x123/0x620
[<ffffffff812bd605>] ext4_writepages+0x885/0x10e0
[<ffffffff811a7231>] do_writepages+0x21/0x40
[<ffffffff81257d20>] __writeback_single_inode+0x60/0x830
[<ffffffff81258cfd>] writeback_sb_inodes+0x2bd/0x650
[<ffffffff8125911c>] __writeback_inodes_wb+0x8c/0xc0

This leak has been bisected to commit 9082e87bfbf83579b97e3bfc45d81f3e50da2177
("block: remove struct bio_batch"). As usual, I will be happy to test any fixes.

Thanks,

Larry

--
If I was stranded on an island and the only way to get off
the island was to make a pretty UI, Iâd die there.

Linus Torvalds