attach_empty() file takes a BSD file lock on the device, and we really
should release that before going to sleep. hence explicitly close the
block device before the sleep instead of relying on _cleanup_ to close
it after the sleep.
if (++n_attempts >= 64) /* Give up eventually */
return -EBUSY;
+ /* Now close the loop device explicitly. This will release any lock acquired by
+ * attach_empty_file() or similar, while we sleep below. */
+ loop = safe_close(loop);
loopdev = mfree(loopdev);
/* Wait some random time, to make collision less likely. Let's pick a random time in the