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.