I have been looking at partitions in 2.5.38-1 :)
The ubd_add function no longer calls ubd_revalidate
The common layers don't seem to ever call ubd_open and never try to read the
partition table by opening the device it will not try to open it even when
the 0x6201 root device is directly specified.

I don't know what Al Viro said is the correct method but it is not working
yet :(

This may be a problem specific to ubd as the ubd driver really does want the
device opened before any attempts to use the block queue for read or write
but other kinds of drivers will allow for unopened access to the device.

That is why the old ubd_revalidate had that somewhat silly looking
open/close pair. so that the block queue would not fail due to a unopened
device. As I recall open/close mostly applied to mount/unmount and the
partition read happens before that.