Re: [PATCH] bdev: fix NULL pointer dereference in sync()/close() race

From: Tejun Heo
Date: Mon Aug 29 2016 - 15:55:52 EST


Hello,

On Sat, Aug 27, 2016 at 11:30:22AM +0200, Vegard Nossum wrote:
> > Don't know what's the right fix, but I posted a slightly different one
> > for the same crash some months ago:
> > https://patchwork.kernel.org/patch/8556941/
> >
>
> Ah, I'm sorry, I didn't see that.
>
> Your patch is 100% identical to my first attempt at a fix and I can
> confirm that it also fixes the problem for me.
>
> If people who are more savvy in block/fs code could ack the locking bits
> I think we should apply the patch ASAP because it's an easy local DOS if
> you have (open/read) access to any block device.

I think the right thing to do there is doing blkdev_get() /
blkdev_put() around func() invocation in iterate_bdevs() rather than
holding bd_mutex across the callback. Can you please verify whether
that works?

Thanks.

--
tejun