Lines Matching refs:bs

53 int bdrv_snapshot_find(BlockDriverState *bs, QEMUSnapshotInfo *sn_info,  in bdrv_snapshot_find()  argument
62 nb_sns = bdrv_snapshot_list(bs, &sn_tab); in bdrv_snapshot_find()
98 bool bdrv_snapshot_find_by_id_and_name(BlockDriverState *bs, in bdrv_snapshot_find_by_id_and_name() argument
111 nb_sns = bdrv_snapshot_list(bs, &sn_tab); in bdrv_snapshot_find_by_id_and_name()
158 bdrv_snapshot_fallback_child(BlockDriverState *bs) in bdrv_snapshot_fallback_child() argument
160 BdrvChild *fallback = bdrv_primary_child(bs); in bdrv_snapshot_fallback_child()
176 QLIST_FOREACH(child, &bs->children, next) { in bdrv_snapshot_fallback_child()
189 bdrv_snapshot_fallback(BlockDriverState *bs) in bdrv_snapshot_fallback() argument
192 return child_bs(bdrv_snapshot_fallback_child(bs)); in bdrv_snapshot_fallback()
195 int bdrv_can_snapshot(BlockDriverState *bs) in bdrv_can_snapshot() argument
197 BlockDriver *drv = bs->drv; in bdrv_can_snapshot()
201 if (!drv || !bdrv_is_inserted(bs) || !bdrv_is_writable(bs)) { in bdrv_can_snapshot()
206 BlockDriverState *fallback_bs = bdrv_snapshot_fallback(bs); in bdrv_can_snapshot()
216 int bdrv_snapshot_create(BlockDriverState *bs, in bdrv_snapshot_create() argument
219 BlockDriver *drv = bs->drv; in bdrv_snapshot_create()
220 BlockDriverState *fallback_bs = bdrv_snapshot_fallback(bs); in bdrv_snapshot_create()
228 return drv->bdrv_snapshot_create(bs, sn_info); in bdrv_snapshot_create()
236 int bdrv_snapshot_goto(BlockDriverState *bs, in bdrv_snapshot_goto() argument
240 BlockDriver *drv = bs->drv; in bdrv_snapshot_goto()
251 if (!QLIST_EMPTY(&bs->dirty_bitmaps)) { in bdrv_snapshot_goto()
257 ret = drv->bdrv_snapshot_goto(bs, snapshot_id); in bdrv_snapshot_goto()
265 fallback = bdrv_snapshot_fallback_child(bs); in bdrv_snapshot_goto()
272 BlockDriverState *fallback_bs = fallback->bs; in bdrv_snapshot_goto()
275 options = qdict_clone_shallow(bs->options); in bdrv_snapshot_goto()
290 drv->bdrv_close(bs); in bdrv_snapshot_goto()
295 bdrv_unref_child(bs, fallback); in bdrv_snapshot_goto()
299 open_ret = drv->bdrv_open(bs, options, bs->open_flags, &local_err); in bdrv_snapshot_goto()
303 bs->drv = NULL; in bdrv_snapshot_goto()
316 assert(bdrv_primary_bs(bs) == fallback_bs); in bdrv_snapshot_goto()
349 int bdrv_snapshot_delete(BlockDriverState *bs, in bdrv_snapshot_delete() argument
354 BlockDriver *drv = bs->drv; in bdrv_snapshot_delete()
355 BlockDriverState *fallback_bs = bdrv_snapshot_fallback(bs); in bdrv_snapshot_delete()
362 bdrv_get_device_name(bs)); in bdrv_snapshot_delete()
371 bdrv_drained_begin(bs); in bdrv_snapshot_delete()
374 ret = drv->bdrv_snapshot_delete(bs, snapshot_id, name, errp); in bdrv_snapshot_delete()
380 drv->format_name, bdrv_get_device_name(bs)); in bdrv_snapshot_delete()
384 bdrv_drained_end(bs); in bdrv_snapshot_delete()
388 int bdrv_snapshot_list(BlockDriverState *bs, in bdrv_snapshot_list() argument
394 BlockDriver *drv = bs->drv; in bdrv_snapshot_list()
395 BlockDriverState *fallback_bs = bdrv_snapshot_fallback(bs); in bdrv_snapshot_list()
401 return drv->bdrv_snapshot_list(bs, psn_info); in bdrv_snapshot_list()
429 int bdrv_snapshot_load_tmp(BlockDriverState *bs, in bdrv_snapshot_load_tmp() argument
434 BlockDriver *drv = bs->drv; in bdrv_snapshot_load_tmp()
441 bdrv_get_device_name(bs)); in bdrv_snapshot_load_tmp()
448 if (!bdrv_is_read_only(bs)) { in bdrv_snapshot_load_tmp()
453 return drv->bdrv_snapshot_load_tmp(bs, snapshot_id, name, errp); in bdrv_snapshot_load_tmp()
457 drv->format_name, bdrv_get_device_name(bs)); in bdrv_snapshot_load_tmp()
461 int bdrv_snapshot_load_tmp_by_id_or_name(BlockDriverState *bs, in bdrv_snapshot_load_tmp_by_id_or_name() argument
470 ret = bdrv_snapshot_load_tmp(bs, id_or_name, NULL, &local_err); in bdrv_snapshot_load_tmp_by_id_or_name()
474 ret = bdrv_snapshot_load_tmp(bs, NULL, id_or_name, &local_err); in bdrv_snapshot_load_tmp_by_id_or_name()
496 BlockDriverState *bs = bdrv_find_node(devices->value); in bdrv_all_get_snapshot_devices() local
497 if (!bs) { in bdrv_all_get_snapshot_devices()
501 bdrvs = g_list_append(bdrvs, bs); in bdrv_all_get_snapshot_devices()
505 BlockDriverState *bs; in bdrv_all_get_snapshot_devices() local
507 for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) { in bdrv_all_get_snapshot_devices()
508 bdrvs = g_list_append(bdrvs, bs); in bdrv_all_get_snapshot_devices()
517 static bool GRAPH_RDLOCK bdrv_all_snapshots_includes_bs(BlockDriverState *bs) in bdrv_all_snapshots_includes_bs() argument
522 if (!bdrv_is_inserted(bs) || bdrv_is_read_only(bs)) { in bdrv_all_snapshots_includes_bs()
528 return bdrv_has_blk(bs) || QLIST_EMPTY(&bs->parents); in bdrv_all_snapshots_includes_bs()
548 BlockDriverState *bs = iterbdrvs->data; in bdrv_all_can_snapshot() local
551 if (devices || bdrv_all_snapshots_includes_bs(bs)) { in bdrv_all_can_snapshot()
552 ok = bdrv_can_snapshot(bs); in bdrv_all_can_snapshot()
556 "snapshots", bdrv_get_device_or_node_name(bs)); in bdrv_all_can_snapshot()
583 BlockDriverState *bs = iterbdrvs->data; in bdrv_all_delete_snapshot() local
587 if ((devices || bdrv_all_snapshots_includes_bs(bs)) && in bdrv_all_delete_snapshot()
588 bdrv_snapshot_find(bs, snapshot, name) >= 0) in bdrv_all_delete_snapshot()
590 ret = bdrv_snapshot_delete(bs, snapshot->id_str, in bdrv_all_delete_snapshot()
595 name, bdrv_get_device_or_node_name(bs)); in bdrv_all_delete_snapshot()
627 BlockDriverState *bs = iterbdrvs->data; in bdrv_all_goto_snapshot() local
631 all_snapshots_includes_bs = bdrv_all_snapshots_includes_bs(bs); in bdrv_all_goto_snapshot()
635 bdrv_snapshot_goto(bs, name, errp) : 0; in bdrv_all_goto_snapshot()
639 name, bdrv_get_device_or_node_name(bs)); in bdrv_all_goto_snapshot()
666 BlockDriverState *bs = iterbdrvs->data; in bdrv_all_has_snapshot() local
670 if (devices || bdrv_all_snapshots_includes_bs(bs)) { in bdrv_all_has_snapshot()
671 ret = bdrv_snapshot_find(bs, &sn, name); in bdrv_all_has_snapshot()
679 name, bdrv_get_device_or_node_name(bs)); in bdrv_all_has_snapshot()
708 BlockDriverState *bs = iterbdrvs->data; in bdrv_all_create_snapshot() local
711 if (bs == vm_state_bs) { in bdrv_all_create_snapshot()
713 ret = bdrv_snapshot_create(bs, sn); in bdrv_all_create_snapshot()
714 } else if (devices || bdrv_all_snapshots_includes_bs(bs)) { in bdrv_all_create_snapshot()
716 ret = bdrv_snapshot_create(bs, sn); in bdrv_all_create_snapshot()
720 sn->name, bdrv_get_device_or_node_name(bs)); in bdrv_all_create_snapshot()
747 BlockDriverState *bs = iterbdrvs->data; in bdrv_all_find_vmstate_bs() local
750 found = (devices || bdrv_all_snapshots_includes_bs(bs)) && in bdrv_all_find_vmstate_bs()
751 bdrv_can_snapshot(bs); in bdrv_all_find_vmstate_bs()
755 bdrv_get_node_name(bs))) { in bdrv_all_find_vmstate_bs()
757 return bs; in bdrv_all_find_vmstate_bs()
766 return bs; in bdrv_all_find_vmstate_bs()