summaryrefslogtreecommitdiff
path: root/src/gpt-auto-generator/gpt-auto-generator.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-04-18 11:33:08 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-04-18 11:58:33 +0200
commit4953e39c70430e2d46915f8a626ac14fdf31b3d3 (patch)
treeea8b9b0ed87be33f42e74c16ad599108770bb900 /src/gpt-auto-generator/gpt-auto-generator.c
parentde47cd061097164fff4ca901b703df32604c655e (diff)
downloadsystemd-4953e39c70430e2d46915f8a626ac14fdf31b3d3.tar.gz
gpt-auto-generator: "translate" errno codes into proper messages
E.g. in logs on jammy-ppc64el in https://github.com/systemd/systemd/pull/27294: Apr 16 17:42:50 H systemd-gpt-auto-generator[300]: Failed to dissect partition table of block device /dev/sda: No message of desired type Apr 16 17:42:50 H (sd-execu[295]: /usr/lib/systemd/system-generators/systemd-gpt-auto-generator failed with exit status 1. ee0e6e476e61d4baa2a18e241d212753e75003bf made this particular condition not an error. But for other errnos we want to print a better message too. dissect_loop_device_and_warn() already does this, but it always prints the error at error level. We want to suppress some of the errors, so let's make the print helper public and do the error suppression in the caller.
Diffstat (limited to 'src/gpt-auto-generator/gpt-auto-generator.c')
-rw-r--r--src/gpt-auto-generator/gpt-auto-generator.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c
index 005df04328..030ada5d6e 100644
--- a/src/gpt-auto-generator/gpt-auto-generator.c
+++ b/src/gpt-auto-generator/gpt-auto-generator.c
@@ -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);