bcache: fix cache_set_flush() NULL pointer dereference on OOM
authorEric Wheeler <git@linux.ewheeler.net>
Mon, 7 Mar 2016 23:17:50 +0000 (15:17 -0800)
committerJens Axboe <axboe@fb.com>
Tue, 8 Mar 2016 16:19:10 +0000 (09:19 -0700)
commitf8b11260a445169989d01df75d35af0f56178f95
tree39c76fd608151d09474df9654b14367855808e7b
parent9b299728ed777428b3908ac72ace5f8f84b97789
bcache: fix cache_set_flush() NULL pointer dereference on OOM

When bch_cache_set_alloc() fails to kzalloc the cache_set, the
asyncronous closure handling tries to dereference a cache_set that
hadn't yet been allocated inside of cache_set_flush() which is called
by __cache_set_unregister() during cleanup.  This appears to happen only
during an OOM condition on bcache_register.

Signed-off-by: Eric Wheeler <bcache@linux.ewheeler.net>
Cc: stable@vger.kernel.org
drivers/md/bcache/super.c