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@kernel.org Reported-by: Markus Trippelsdorf markus@trippelsdorf.de Cc: stable@kernel.org
Thanks Tejun, applied.
It's already in mainline: e75aa85892b2ee78c79edac720868cbef16e62eb