[PATCH RESEND block#for-2.6.36] block_dev: always serialize exclusive open attempts

Markus Trippelsdorf markus at trippelsdorf.de
Thu Aug 5 02:17:04 PDT 2010


On Thu, Aug 05, 2010 at 11:02:43AM +0200, Jens Axboe wrote:
> On 2010-08-04 17:59, Tejun Heo wrote:
> > bd_prepare_to_claim() incorrectly allowed multiple attempts for
> > exclusive open to progress in parallel if the attempting holders are
> > identical.  This triggered BUG_ON() as reported in the following bug.
> > 
> >   https://bugzilla.kernel.org/show_bug.cgi?id=16393
> > 
> > __bd_abort_claiming() is used to finish claiming blocks and doesn't
> > work if multiple openers are inside a claiming block.  Allowing
> > multiple parallel open attempts to continue doesn't gain anything as
> > those are serialized down in the call chain anyway.  Fix it by always
> > allowing only single open attempt in a claiming block.
> > 
> > This problem can easily be reproduced by adding a delay after
> > bd_prepare_to_claim() and attempting to mount two partitions of a
> > disk.
> > 
> > stable: only applicable to v2.6.35
> > 
> > Signed-off-by: Tejun Heo <tj at kernel.org>
> > Reported-by: Markus Trippelsdorf <markus at trippelsdorf.de>
> > Cc: stable at kernel.org
> 
> Thanks Tejun, applied.

It's already in mainline:
e75aa85892b2ee78c79edac720868cbef16e62eb

-- 
»A man who doesn't know he is in prison can never escape.«
William S. Burroughs


More information about the dri-devel mailing list