Revision 9315cbfd

b/hw/virtio-blk.c
543 543
    return features;
544 544
}
545 545

  
546
static void virtio_blk_set_status(VirtIODevice *vdev, uint8_t status)
547
{
548
    VirtIOBlock *s = to_virtio_blk(vdev);
549
    uint32_t features;
550

  
551
    if (!(status & VIRTIO_CONFIG_S_DRIVER_OK)) {
552
        return;
553
    }
554

  
555
    features = vdev->guest_features;
556
    bdrv_set_enable_write_cache(s->bs, !!(features & (1 << VIRTIO_BLK_F_WCE)));
557
}
558

  
546 559
static void virtio_blk_save(QEMUFile *f, void *opaque)
547 560
{
548 561
    VirtIOBlock *s = opaque;
......
623 636
    s->vdev.get_config = virtio_blk_update_config;
624 637
    s->vdev.set_config = virtio_blk_set_config;
625 638
    s->vdev.get_features = virtio_blk_get_features;
639
    s->vdev.set_status = virtio_blk_set_status;
626 640
    s->vdev.reset = virtio_blk_reset;
627 641
    s->bs = blk->conf.bs;
628 642
    s->conf = &blk->conf;

Also available in: Unified diff