Revision bb5fc20f block.c

b/block.c
430 430
        }
431 431
    }
432 432

  
433
    /* call the change callback */
434
    bs->media_changed = 1;
435
    if (bs->change_cb)
436
        bs->change_cb(bs->change_opaque);
437

  
433
    if (!bdrv_key_required(bs)) {
434
        /* call the change callback */
435
        bs->media_changed = 1;
436
        if (bs->change_cb)
437
            bs->change_cb(bs->change_opaque);
438
    }
438 439
    return 0;
439 440
}
440 441

  
......
989 990
    if (!bs->encrypted || !bs->drv || !bs->drv->bdrv_set_key)
990 991
        return -1;
991 992
    ret = bs->drv->bdrv_set_key(bs, key);
992
    bs->valid_key = (ret == 0);
993
    if (ret < 0) {
994
        bs->valid_key = 0;
995
    } else if (!bs->valid_key) {
996
        bs->valid_key = 1;
997
        /* call the change callback now, we skipped it on open */
998
        bs->media_changed = 1;
999
        if (bs->change_cb)
1000
            bs->change_cb(bs->change_opaque);
1001
    }
993 1002
    return ret;
994 1003
}
995 1004

  

Also available in: Unified diff