On Mon 08 Apr 2019 08:17:37 PM CEST, Andrey Shinkevich wrote: >>> + for (iter = bs; iter != bottom; iter = backing_bs(iter)) { >>> + block_job_add_bdrv(&s->common, "intermediate node", >>> backing_bs(iter), >>> + 0, basic_flags, &error_abort); >>> } >> >> This stops when iter == bottom, so bottom is not actually blocked. > > The bottom is actually blocked because backing_bs(iter) == bottom is > passed to the block_job_add_bdrv() with the last iteration of the > loop.
Right, I hadn't noticed that you are passing backing_bs(iter) to block_job_add_bdrv() now. Berto