Re: 2.6.19-rc3: known unfixed regressions (v3)

Linus Torvalds
2006-10-30T16:48:30Z

On Mon, 30 Oct 2006, Jun'ichi Nomura wrote:
>
> The code is related to bd_claim_by_disk which is called when
> device-mapper or md tries to mark the underlying devices
> for exclusive use and creates symlinks from/to the devices
> in sysfs. The patch added error handlings which weren't in
> the original code.

Actually, looking closer at the code, the patch seems to add _incorrect_
error handling.

For example, look at bd_claim_by_kobject(): if the "bd_claim()" inside of
it succeeds, we used to always return success. Now, we don't necessarily
do that: we may have done a _successful_ "bd_claim()" call, but then we
return an error because something else failed, and now we're returning
with from bd_claim_by_kobject() with the bd_claim() done, but with an
error return (so the caller will _not_ call "bd_release()", and the
block_device will forever stay exclusive).

No?

Now, exactly why acpi stops working as a result, I don't know, but maybe
something else tries to get exclusive access to a swap partition, for
example, and now fails, causing some acpi sequence to not be set up?
Dunno.

So I suspect it should be reverted, but maybe somebody can see exactly
what goes wrong here.

Linus