diff --git a/live-build/functions b/live-build/functions index d86f27d6..e9fbb507 100644 --- a/live-build/functions +++ b/live-build/functions @@ -14,18 +14,12 @@ clean_loops() { local kpartx_stdout if [ -n "${backing_img}" ]; then - # sync before removing loop to avoid "Device or resource busy" errors + # If something just finished writing to the device or a + # partition (e.g. the zerofree in umount_partition) udev might + # still be processing the device. + udevadm settle sync - kpartx_ret="" - kpartx_stdout=$(kpartx -v -d "${backing_img}") || kpartx_ret=$? - echo "$kpartx_stdout" - if [ -n "$kpartx_ret" ]; then - if echo "$kpartx_stdout" | grep -q "loop deleted"; then - echo "Suppressing kpartx returning error (#860894)" - else - exit $kpartx_ret - fi - fi + kpartx -v -d "${backing_img}" unset backing_img fi