1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-23 21:35:11 +03:00

sysext: use LO_FLAGS_PARTSCAN when opening image

Jan 17 12:34:59 myguest1 (sd-sysext)[486]: Device '/var/lib/extensions/myext.raw' is loopback block device with partition scanning turned off, please turn it on.

Fixes https://github.com/systemd/systemd/issues/22146
This commit is contained in:
Luca Boccassi 2022-01-19 00:27:45 +00:00 committed by Zbigniew Jędrzejewski-Szmek
parent edaca18739
commit 70a5c6dce0

View File

@ -2,6 +2,7 @@
#include <fcntl.h>
#include <getopt.h>
#include <linux/loop.h>
#include <sys/mount.h>
#include <unistd.h>
@ -529,7 +530,11 @@ static int merge_subprocess(Hashmap *images, const char *workspace) {
if (verity_settings.data_path)
flags |= DISSECT_IMAGE_NO_PARTITION_TABLE;
r = loop_device_make_by_path(img->path, O_RDONLY, 0, &d);
r = loop_device_make_by_path(
img->path,
O_RDONLY,
FLAGS_SET(flags, DISSECT_IMAGE_NO_PARTITION_TABLE) ? 0 : LO_FLAGS_PARTSCAN,
&d);
if (r < 0)
return log_error_errno(r, "Failed to set up loopback device for %s: %m", img->path);