Back iSeptember 2007 Michael made the serial number support in qemu optional and off by default, and in October 2009 Rusty reverted the Linux virtio-blk support for it. Given that I can't find support in any other virtio implementation that makes the feature look essentially dead.
How should we proceed with adding more fields to struct virtio_blk_config? I would suggest removing the identity field, declaring VIRTIO_BLK_F_IDENTIFY officially deprecated and adding the new fields directly after blk_size again, maybe with a comment that these new features can't be advertized together with VIRTIO_BLK_F_IDENTIFY. I need to add a new optiomal_io_size field soon to support the block topology information when using virtio which is quite important when using RAID arrays as backend, and I'd prefer to do it in a way that's compatibly with the PCI spec.