From: Luca Boccassi Date: Wed, 3 Jun 2020 18:47:39 +0000 (+0100) Subject: dissect-image: wait for udev for single filesystem images too X-Git-Tag: v246-rc1~182^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b1806441bbf72fb227f41767ceaf2d6330701f51;p=thirdparty%2Fsystemd.git dissect-image: wait for udev for single filesystem images too Single filesystem images are mounted from the /dev/block/X:Y symlink rather than /dev/loopZ, so we need to wait for udev to create it or mounting will be racy and occasionally fail. --- diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c index 8decac94b22..8eb17c99997 100644 --- a/src/shared/dissect-image.c +++ b/src/shared/dissect-image.c @@ -424,11 +424,11 @@ int dissect_image( m->encrypted = streq_ptr(fstype, "crypto_LUKS"); - if (!streq(usage, "filesystem")) { - r = loop_wait_for_partitions_to_appear(fd, d, 0, flags, &e); - if (r < 0) - return r; - } + /* Even on a single partition we need to wait for udev to create the + * /dev/block/X:Y symlink to /dev/loopZ */ + r = loop_wait_for_partitions_to_appear(fd, d, 0, flags, &e); + if (r < 0) + return r; *ret = TAKE_PTR(m); return 0;