On 25.06.2020 18:22, Max Reitz wrote:
When looking for a dirty bitmap to share, we should handle filters by
just including them in the search (so they do not break backing chains).

Signed-off-by: Max Reitz <[email protected]>
---
  nbd/server.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/nbd/server.c b/nbd/server.c
index 20754e9ebc..b504a79435 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -1561,13 +1561,13 @@ NBDExport *nbd_export_new(BlockDriverState *bs, 
uint64_t dev_offset,
      if (bitmap) {
          BdrvDirtyBitmap *bm = NULL;
- while (true) {
+        while (bs) {
              bm = bdrv_find_dirty_bitmap(bs, bitmap);
-            if (bm != NULL || bs->backing == NULL) {
+            if (bm != NULL) {
                  break;
              }
- bs = bs->backing->bs;
+            bs = bdrv_filter_or_cow_bs(bs);
          }
if (bm == NULL) {


Reviewed-by: Andrey Shinkevich <[email protected]>



Reply via email to