On 2011-06-13 12:44, Tejun Heo wrote: > 6b4517a791 (block: implement bd_claiming and claiming block) > introduced claiming block to support O_EXCL blkdev opens properly. > > bd_start_claiming() looks up the part 0 bdev and starts claiming > block. The function assumed that there is only one part 0 bdev and > always used bdget_disk(disk, 0) to look it up; unfortunately, this > isn't true for some drivers (floppy) which use multiple block devices > to denote different operating parameters for the same physical device. > There can be multiple part 0 bdev's for the same device number. > > This incorrect assumption caused the wrong bdev to be used during > claiming leading to unbalanced bd_holders as reported in the following > bug. > > https://bugzilla.kernel.org/show_bug.cgi?id=28522 > > This patch updates bd_start_claiming() such that it uses the bdev > specified as argument if its partno is zero. > > Note that this means that different bdev's can be used for the same > device and O_EXCL check can be effectively bypassed. It has always > been broken that way and floppy is fortunately on its way out. Leave > that breakage alone.
Thanks, applied for 3.0. -- Jens Axboe _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
