On 3/22/19 2:13 PM, Johannes Thumshirn wrote:
When we're submitting a bio from stack and this ends up being split, we
call bio_put(). bio_put() will eventually call bio_free() if the reference
count drops to 0. But freeing the bio is wrong, as it was never allocated
out of the bio's mempool.
Flag each normally allocated bio as 'BIO_ALLOCATED' and skip freeing if the
flag isn't set.
Fixes: 189ce2b9dcc3 ("block: fast-path for small and simple direct I/O requests")
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
---
block/bio.c | 4 ++++
include/linux/blk_types.h | 1 +
2 files changed, 5 insertions(+)
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Although I do question the 'Fixes' tag here; without the first two this
patch would be pretty pointless, so I'd rather have all 3 marked with
'Fixes'.
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@xxxxxxx +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)