The recent fix didn't actually fix the whole problem. Operations can't only wait for themselves, but we can also end up with circular dependencies like two operations waiting for each other to complete.
This reverts the first fix and implements another approach. Kevin Wolf (2): Revert "mirror: Don't let an operation wait for itself" mirror: Wait only for in-flight operations block/mirror.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) -- 2.20.1