1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-25 01:34:28 +03:00

Merge pull request #27323 from keszybz/gpt-auto-generator-warning-cleanup

gpt-auto-generator: do not error out when no partitions are found
This commit is contained in:
Mike Yuan 2023-04-19 02:06:06 +08:00 committed by GitHub
commit d81fc15254
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 8 deletions

View File

@ -1080,7 +1080,7 @@ static int add_sysroot_usr_mount_or_fallback(void) {
/* OK, so we didn't write anything out for /sysusr/usr/ nor /sysroot/usr/. In this case, let's make
* sure that initrd-usr-fs.target is at least ordered after sysroot.mount so that services that order
* themselves get the guarantee that /usr/ is definitely mounted somewhere. */
* themselves after it get the guarantee that /usr/ is definitely mounted somewhere. */
return generator_add_symlink(
arg_dest,

View File

@ -761,12 +761,11 @@ static int enumerate_partitions(dev_t devnum) {
* on. And thus we also don't set DISSECT_IMAGE_PIN_PARTITION_DEVICES here, because
* we don't actually mount anything immediately. */
&m);
if (r == -ENOPKG) {
log_debug_errno(r, "No suitable partition table found on block device %s, ignoring.", devname);
return 0;
if (r < 0) {
bool ok = r == -ENOPKG;
dissect_log_error(ok ? LOG_DEBUG : LOG_ERR, r, devname, NULL);
return ok ? 0 : r;
}
if (r < 0)
return log_error_errno(r, "Failed to dissect partition table of block device %s: %m", devname);
if (m->partitions[PARTITION_SWAP].found) {
k = add_partition_swap(m->partitions + PARTITION_SWAP);

View File

@ -1575,7 +1575,8 @@ int dissect_image_file(
#endif
}
static int dissect_log_error(int r, const char *name, const VeritySettings *verity) {
int dissect_log_error(int log_level, int r, const char *name, const VeritySettings *verity) {
assert(log_level >= 0 && log_level <= LOG_DEBUG);
assert(name);
switch (r) {
@ -1620,7 +1621,7 @@ static int dissect_log_error(int r, const char *name, const VeritySettings *veri
return log_error_errno(r, "%s: no suitable partitions found.", name);
default:
return log_error_errno(r, "Failed to dissect image '%s': %m", name);
return log_error_errno(r, "%s: cannot dissect image: %m", name);
}
}
@ -1633,6 +1634,7 @@ int dissect_image_file_and_warn(
DissectedImage **ret) {
return dissect_log_error(
LOG_ERR,
dissect_image_file(path, verity, mount_options, image_policy, flags, ret),
path,
verity);
@ -3560,6 +3562,7 @@ int dissect_loop_device_and_warn(
assert(loop);
return dissect_log_error(
LOG_ERR,
dissect_loop_device(loop, verity, mount_options, image_policy, flags, ret),
loop->backing_file ?: loop->node,
verity);

View File

@ -147,6 +147,7 @@ static inline int probe_filesystem(const char *path, char **ret_fstype) {
return probe_filesystem_full(-1, path, 0, UINT64_MAX, ret_fstype);
}
int dissect_log_error(int log_level, int r, const char *name, const VeritySettings *verity);
int dissect_image_file(const char *path, const VeritySettings *verity, const MountOptions *mount_options, const ImagePolicy *image_policy, DissectImageFlags flags, DissectedImage **ret);
int dissect_image_file_and_warn(const char *path, const VeritySettings *verity, const MountOptions *mount_options, const ImagePolicy *image_policy, DissectImageFlags flags, DissectedImage **ret);
int dissect_loop_device(LoopDevice *loop, const VeritySettings *verity, const MountOptions *mount_options, const ImagePolicy *image_policy, DissectImageFlags flags, DissectedImage **ret);