Revision c79662f7

b/hw/scsi-disk.c
633 633
            memset(p, 0, 4);
634 634
            outbuf[1] = 0; /* Default media type.  */
635 635
            outbuf[3] = 0; /* Block descriptor length.  */
636
            if (bdrv_get_type_hint(s->dinfo->bdrv) == BDRV_TYPE_CDROM) {
636
            if (bdrv_get_type_hint(s->dinfo->bdrv) == BDRV_TYPE_CDROM ||
637
                bdrv_is_read_only(s->dinfo->bdrv)) {
637 638
                outbuf[2] = 0x80; /* Readonly.  */
638 639
            }
639 640
            p += 4;
b/hw/virtio-blk.c
444 444
#endif
445 445
    if (strcmp(s->serial_str, "0"))
446 446
        features |= 1 << VIRTIO_BLK_F_IDENTIFY;
447
    
448
    if (bdrv_is_read_only(s->bs))
449
        features |= 1 << VIRTIO_BLK_F_RO;
447 450

  
448 451
    return features;
449 452
}

Also available in: Unified diff