]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/umount: use structured initializers 9958/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 1 Sep 2018 14:04:42 +0000 (23:04 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 10 Sep 2018 07:48:37 +0000 (16:48 +0900)
src/core/umount.c

index 3d4524a0e1e3fee1cf7eb96f6b09a9df16ba9564..47313da231060f98e99727af8f03a4908f9d1a1a 100644 (file)
@@ -256,22 +256,26 @@ static int loopback_list_get(MountPoint **head) {
                 return r;
 
         FOREACH_DEVICE(e, d) {
-                _cleanup_free_ MountPoint *lb = NULL;
+                _cleanup_free_ char *p = NULL;
                 const char *dn;
+                MountPoint *lb;
 
                 if (sd_device_get_devname(d, &dn) < 0)
                         continue;
 
-                lb = new0(MountPoint, 1);
+                p = strdup(dn);
+                if (!p)
+                        return -ENOMEM;
+
+                lb = new(MountPoint, 1);
                 if (!lb)
                         return -ENOMEM;
 
-                r = free_and_strdup(&lb->path, dn);
-                if (r < 0)
-                        return r;
+                *lb = (MountPoint) {
+                        .path = TAKE_PTR(p),
+                };
 
                 LIST_PREPEND(mount_point, *head, lb);
-                lb = NULL;
         }
 
         return 0;
@@ -301,27 +305,29 @@ static int dm_list_get(MountPoint **head) {
                 return r;
 
         FOREACH_DEVICE(e, d) {
-                _cleanup_free_ MountPoint *m = NULL;
+                _cleanup_free_ char *p = NULL;
                 const char *dn;
+                MountPoint *m;
                 dev_t devnum;
 
-                if (sd_device_get_devnum(d, &devnum) < 0)
+                if (sd_device_get_devnum(d, &devnum) < 0 ||
+                    sd_device_get_devname(d, &dn) < 0)
                         continue;
 
-                if (sd_device_get_devname(d, &dn) < 0)
-                        continue;
+                p = strdup(dn);
+                if (!p)
+                        return -ENOMEM;
 
-                m = new0(MountPoint, 1);
+                m = new(MountPoint, 1);
                 if (!m)
                         return -ENOMEM;
 
-                m->devnum = devnum;
-                r = free_and_strdup(&m->path, dn);
-                if (r < 0)
-                        return r;
+                *m = (MountPoint) {
+                        .path = TAKE_PTR(p),
+                        .devnum = devnum,
+                };
 
                 LIST_PREPEND(mount_point, *head, m);
-                m = NULL;
         }
 
         return 0;