&result);
if (r < 0)
return r;
- if (!result.path)
+ if (!result.path) {
+ if (m->ignore_enoent)
+ continue;
+
return log_debug_errno(
SYNTHETIC_ERRNO(ENOENT),
"No matching entry in .v/ directory %s found.",
m->source);
+ }
if (asprintf(&mount_point, "%s/%zu", extension_dir, i) < 0)
return -ENOMEM;
const char *e = *extension_directory;
bool ignore_enoent = false;
- /* Pick up the counter where the ExtensionImages left it. */
- if (asprintf(&mount_point, "%s/%zu", extension_dir, n++) < 0)
- return -ENOMEM;
-
/* Look for any prefixes */
if (startswith(e, "-")) {
e++;
&result);
if (r < 0)
return r;
- if (!result.path)
+ if (!result.path) {
+ if (ignore_enoent)
+ continue;
+
return log_debug_errno(
SYNTHETIC_ERRNO(ENOENT),
"No matching entry in .v/ directory %s found.",
e);
+ }
+ /* Pick up the counter where the ExtensionImages left it. */
+ if (asprintf(&mount_point, "%s/%zu", extension_dir, n++) < 0)
+ return -ENOMEM;
for (size_t j = 0; hierarchies && hierarchies[j]; ++j) {
char *prefixed_hierarchy = path_join(mount_point, hierarchies[j]);
# Check vpick support in ExtensionImages=
VBASE="vtest$RANDOM"
VDIR="/tmp/$VBASE.v"
-mkdir "$VDIR"
+EMPTY_VDIR="/tmp/$VBASE-empty.v"
+mkdir "$VDIR" "$EMPTY_VDIR"
ln -s /tmp/app0.raw "$VDIR/${VBASE}_0.raw"
ln -s /tmp/app1.raw "$VDIR/${VBASE}_1.raw"
-systemd-run -P -p ExtensionImages="$VDIR" bash -c '/opt/script1.sh | grep ID'
+systemd-run -P -p ExtensionImages="$VDIR -$EMPTY_VDIR" bash -c '/opt/script1.sh | grep ID'
-rm -rf "$VDIR"
+rm -rf "$VDIR" "$EMPTY_VDIR"
# ExtensionDirectories will set up an overlay
mkdir -p "$IMAGE_DIR/app0" "$IMAGE_DIR/app1" "$IMAGE_DIR/app-nodistro" "$IMAGE_DIR/service-scoped-test"
# Check vpick support in ExtensionDirectories=
VBASE="vtest$RANDOM"
VDIR="/tmp/$VBASE.v"
-mkdir "$VDIR"
+EMPTY_VDIR="/tmp/$VBASE-empty.v"
+mkdir "$VDIR" "$EMPTY_VDIR"
ln -s "$IMAGE_DIR/app0" "$VDIR/${VBASE}_0"
ln -s "$IMAGE_DIR/app1" "$VDIR/${VBASE}_1"
-systemd-run -P --property ExtensionDirectories="$VDIR" cat /opt/script1.sh | grep -q -F "extension-release.app2"
+systemd-run -P --property ExtensionDirectories="$VDIR -$EMPTY_VDIR" cat /opt/script1.sh | grep -q -F "extension-release.app2"
-rm -rf "$VDIR"
+rm -rf "$VDIR" "$EMPTY_VDIR"
systemd-dissect --umount "$IMAGE_DIR/app0"
systemd-dissect --umount "$IMAGE_DIR/app1"