Home
last modified time | relevance | path

Searched hist:"16 e977d506bcc2d9f7daa4a9f7cc2b48536d9da6" (Results 1 – 1 of 1) sorted by relevance

/openbmc/qemu/
H A Dblock.cdiff 16e977d506bcc2d9f7daa4a9f7cc2b48536d9da6 Tue Jan 31 05:23:08 CST 2017 Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> block: bdrv_invalidate_cache: invalidate children first

Current implementation invalidates firstly parent bds and then its
children. This leads to the following bug:

after incoming migration, in bdrv_invalidate_cache_all:
1. invalidate parent bds - reopen it with BDRV_O_INACTIVE cleared
2. child is not yet invalidated
3. parent check that its BDRV_O_INACTIVE is cleared
4. parent writes to child
5. assert in bdrv_co_pwritev, as BDRV_O_INACTIVE is set for child

This patch fixes it by just changing invalidate sequence: invalidate
children first.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20170131112308.54189-1-vsementsov@virtuozzo.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>