This series is extracted from my work towards removing bdrv_swap(), which is targeted for 2.5. It contains a fix for dangling pointers when modifying the BDS graph and its dependencies.
I didn't bother to split patches of which only a part is required, nor did I remove references to the future bdrv_swap removal (after all, it will happen, even if the patches will be delayed by the 2.4 freeze). Specifically, bdrv_open/unref_child() are yet unused in this series; the respective patches are included because of bdrv_attach/detach_child(). Kevin Wolf (5): block: Move bdrv_attach_child() calls up the call chain block: Introduce bdrv_open_child() block: Introduce bdrv_unref_child() block: Reorder cleanups in bdrv_close() block: Fix backing file child when modifying graph block.c | 144 ++++++++++++++++++++++++++++++++-------------- include/block/block.h | 7 +++ include/block/block_int.h | 1 + 3 files changed, 108 insertions(+), 44 deletions(-) -- 1.8.3.1