While reading through the code again, I realized that if you did something like: block-attach xvdb block-attach xvdq block-attach xvdc The extended blkfront code would allocate the wrong device for xvdc, since we had changed mi->type along the way. To fix this, have a separate "major_info" entry for the extended block devices, even though it isn't technically a different major number. With these fixes in place, the above sequence works for me. Signed-off-by: Chris Lalancette