block.c (d874bc081600528f0400977460b4f98f21e156a1) | block.c (fb62b5889695825ea22f29d4eadb9ac1b8935a71) |
---|---|
1/* 2 * QEMU System Emulator block driver 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * Copyright (c) 2020 Virtuozzo International GmbH. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy 8 * of this software and associated documentation files (the "Software"), to deal --- 1398 unchanged lines hidden (view full) --- 1407 const char *filename, Error **errp) 1408{ 1409 if (c->role & BDRV_CHILD_COW) { 1410 return bdrv_backing_update_filename(c, base, filename, errp); 1411 } 1412 return 0; 1413} 1414 | 1/* 2 * QEMU System Emulator block driver 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * Copyright (c) 2020 Virtuozzo International GmbH. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy 8 * of this software and associated documentation files (the "Software"), to deal --- 1398 unchanged lines hidden (view full) --- 1407 const char *filename, Error **errp) 1408{ 1409 if (c->role & BDRV_CHILD_COW) { 1410 return bdrv_backing_update_filename(c, base, filename, errp); 1411 } 1412 return 0; 1413} 1414 |
1415static AioContext *bdrv_child_cb_get_parent_aio_context(BdrvChild *c) | 1415AioContext *child_of_bds_get_parent_aio_context(BdrvChild *c) |
1416{ 1417 BlockDriverState *bs = c->opaque; 1418 1419 return bdrv_get_aio_context(bs); 1420} 1421 1422const BdrvChildClass child_of_bds = { 1423 .parent_is_bds = true, 1424 .get_parent_desc = bdrv_child_get_parent_desc, 1425 .inherit_options = bdrv_inherited_options, 1426 .drained_begin = bdrv_child_cb_drained_begin, 1427 .drained_poll = bdrv_child_cb_drained_poll, 1428 .drained_end = bdrv_child_cb_drained_end, 1429 .attach = bdrv_child_cb_attach, 1430 .detach = bdrv_child_cb_detach, 1431 .inactivate = bdrv_child_cb_inactivate, 1432 .can_set_aio_ctx = bdrv_child_cb_can_set_aio_ctx, 1433 .set_aio_ctx = bdrv_child_cb_set_aio_ctx, 1434 .update_filename = bdrv_child_cb_update_filename, | 1416{ 1417 BlockDriverState *bs = c->opaque; 1418 1419 return bdrv_get_aio_context(bs); 1420} 1421 1422const BdrvChildClass child_of_bds = { 1423 .parent_is_bds = true, 1424 .get_parent_desc = bdrv_child_get_parent_desc, 1425 .inherit_options = bdrv_inherited_options, 1426 .drained_begin = bdrv_child_cb_drained_begin, 1427 .drained_poll = bdrv_child_cb_drained_poll, 1428 .drained_end = bdrv_child_cb_drained_end, 1429 .attach = bdrv_child_cb_attach, 1430 .detach = bdrv_child_cb_detach, 1431 .inactivate = bdrv_child_cb_inactivate, 1432 .can_set_aio_ctx = bdrv_child_cb_can_set_aio_ctx, 1433 .set_aio_ctx = bdrv_child_cb_set_aio_ctx, 1434 .update_filename = bdrv_child_cb_update_filename, |
1435 .get_parent_aio_context = bdrv_child_cb_get_parent_aio_context, | 1435 .get_parent_aio_context = child_of_bds_get_parent_aio_context, |
1436}; 1437 1438AioContext *bdrv_child_get_parent_aio_context(BdrvChild *c) 1439{ 1440 return c->klass->get_parent_aio_context(c); 1441} 1442 1443static int bdrv_open_flags(BlockDriverState *bs, int flags) --- 6133 unchanged lines hidden --- | 1436}; 1437 1438AioContext *bdrv_child_get_parent_aio_context(BdrvChild *c) 1439{ 1440 return c->klass->get_parent_aio_context(c); 1441} 1442 1443static int bdrv_open_flags(BlockDriverState *bs, int flags) --- 6133 unchanged lines hidden --- |