]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cgroup: use log_warning_errno() where possible
authorLennart Poettering <lennart@poettering.net>
Mon, 13 Jan 2020 19:02:01 +0000 (20:02 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 14 Jan 2020 09:44:19 +0000 (10:44 +0100)
src/core/cgroup.c

index af2efd46fa72190a59a3284bd39e9cbb67297b30..4e9e59ac822c1d68cf5307ceb2a2dda6a6a8557a 100644 (file)
@@ -651,30 +651,31 @@ static int lookup_block_device(const char *p, dev_t *ret) {
         r = device_path_parse_major_minor(p, &mode, &rdev);
         if (r == -ENODEV) { /* not a parsable device node, need to go to disk */
                 struct stat st;
+
                 if (stat(p, &st) < 0)
                         return log_warning_errno(errno, "Couldn't stat device '%s': %m", p);
+
                 rdev = (dev_t)st.st_rdev;
                 dev = (dev_t)st.st_dev;
                 mode = st.st_mode;
         } else if (r < 0)
                 return log_warning_errno(r, "Failed to parse major/minor from path '%s': %m", p);
 
-        if (S_ISCHR(mode)) {
-                log_warning("Device node '%s' is a character device, but block device needed.", p);
-                return -ENOTBLK;
-        } else if (S_ISBLK(mode))
+        if (S_ISCHR(mode))
+                return log_warning_errno(SYNTHETIC_ERRNO(ENOTBLK),
+                                         "Device node '%s' is a character device, but block device needed.", p);
+        if (S_ISBLK(mode))
                 *ret = rdev;
         else if (major(dev) != 0)
                 *ret = dev; /* If this is not a device node then use the block device this file is stored on */
         else {
                 /* If this is btrfs, getting the backing block device is a bit harder */
                 r = btrfs_get_block_device(p, ret);
-                if (r < 0 && r != -ENOTTY)
+                if (r == -ENOTTY)
+                        return log_warning_errno(SYNTHETIC_ERRNO(ENODEV),
+                                                 "'%s' is not a block device node, and file system block device cannot be determined or is not local.", p);
+                if (r < 0)
                         return log_warning_errno(r, "Failed to determine block device backing btrfs file system '%s': %m", p);
-                if (r == -ENOTTY) {
-                        log_warning("'%s' is not a block device node, and file system block device cannot be determined or is not local.", p);
-                        return -ENODEV;
-                }
         }
 
         /* If this is a LUKS device, try to get the originating block device */