block-io.h (2f65df6e16dea2d6e7212fa675f4779d9281e26f) block-io.h (299403aedaeb7f08d8e98aa8614b29d4e5546066)
1/*
2 * QEMU System Emulator block driver
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights

--- 288 unchanged lines hidden (view full) ---

297 *
298 * End a quiesced section for the parent of @c.
299 */
300void bdrv_parent_drained_end_single(BdrvChild *c);
301
302/**
303 * bdrv_drain_poll:
304 *
1/*
2 * QEMU System Emulator block driver
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights

--- 288 unchanged lines hidden (view full) ---

297 *
298 * End a quiesced section for the parent of @c.
299 */
300void bdrv_parent_drained_end_single(BdrvChild *c);
301
302/**
303 * bdrv_drain_poll:
304 *
305 * Poll for pending requests in @bs, its parents (except for @ignore_parent),
306 * and if @recursive is true its children as well (used for subtree drain).
305 * Poll for pending requests in @bs and its parents (except for @ignore_parent).
307 *
308 * If @ignore_bds_parents is true, parents that are BlockDriverStates must
309 * ignore the drain request because they will be drained separately (used for
310 * drain_all).
311 *
312 * This is part of bdrv_drained_begin.
313 */
306 *
307 * If @ignore_bds_parents is true, parents that are BlockDriverStates must
308 * ignore the drain request because they will be drained separately (used for
309 * drain_all).
310 *
311 * This is part of bdrv_drained_begin.
312 */
314bool bdrv_drain_poll(BlockDriverState *bs, bool recursive,
315 BdrvChild *ignore_parent, bool ignore_bds_parents);
313bool bdrv_drain_poll(BlockDriverState *bs, BdrvChild *ignore_parent,
314 bool ignore_bds_parents);
316
317/**
318 * bdrv_drained_begin:
319 *
320 * Begin a quiesced section for exclusive access to the BDS, by disabling
321 * external request sources including NBD server, block jobs, and device model.
322 *
323 * This function can be recursive.

--- 5 unchanged lines hidden (view full) ---

329 *
330 * Quiesces a BDS like bdrv_drained_begin(), but does not wait for already
331 * running requests to complete.
332 */
333void bdrv_do_drained_begin_quiesce(BlockDriverState *bs,
334 BdrvChild *parent, bool ignore_bds_parents);
335
336/**
315
316/**
317 * bdrv_drained_begin:
318 *
319 * Begin a quiesced section for exclusive access to the BDS, by disabling
320 * external request sources including NBD server, block jobs, and device model.
321 *
322 * This function can be recursive.

--- 5 unchanged lines hidden (view full) ---

328 *
329 * Quiesces a BDS like bdrv_drained_begin(), but does not wait for already
330 * running requests to complete.
331 */
332void bdrv_do_drained_begin_quiesce(BlockDriverState *bs,
333 BdrvChild *parent, bool ignore_bds_parents);
334
335/**
337 * Like bdrv_drained_begin, but recursively begins a quiesced section for
338 * exclusive access to all child nodes as well.
339 */
340void bdrv_subtree_drained_begin(BlockDriverState *bs);
341
342/**
343 * bdrv_drained_end:
344 *
345 * End a quiescent section started by bdrv_drained_begin().
346 */
347void bdrv_drained_end(BlockDriverState *bs);
348
336 * bdrv_drained_end:
337 *
338 * End a quiescent section started by bdrv_drained_begin().
339 */
340void bdrv_drained_end(BlockDriverState *bs);
341
349/**
350 * End a quiescent section started by bdrv_subtree_drained_begin().
351 */
352void bdrv_subtree_drained_end(BlockDriverState *bs);
353
354#endif /* BLOCK_IO_H */
342#endif /* BLOCK_IO_H */