]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mount-util: use inode_type_to_string() in mode_to_inaccessible_inode()
authorLennart Poettering <lennart@poettering.net>
Mon, 26 Jun 2023 10:52:22 +0000 (12:52 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 26 Jun 2023 15:24:35 +0000 (17:24 +0200)
Let's reuse the inode type name table here and shorten/simplify the code
a bit.

src/shared/mount-util.c

index 425840ffe914c9d20440656caabe53e90344529f..030648ec1b7c4d067abf69eb42d6877d69eb0fbc 100644 (file)
@@ -567,42 +567,21 @@ int mode_to_inaccessible_node(
          * we operate in system context and $XDG_RUNTIME_DIR if we operate in user context. */
 
         _cleanup_free_ char *d = NULL;
-        const char *node = NULL;
+        const char *node;
 
         assert(ret);
 
         if (!runtime_dir)
                 runtime_dir = "/run";
 
-        switch (mode & S_IFMT) {
-                case S_IFREG:
-                        node = "/systemd/inaccessible/reg";
-                        break;
-
-                case S_IFDIR:
-                        node = "/systemd/inaccessible/dir";
-                        break;
-
-                case S_IFCHR:
-                        node = "/systemd/inaccessible/chr";
-                        break;
-
-                case S_IFBLK:
-                        node = "/systemd/inaccessible/blk";
-                        break;
-
-                case S_IFIFO:
-                        node = "/systemd/inaccessible/fifo";
-                        break;
+        if (S_ISLNK(mode))
+                return -EINVAL;
 
-                case S_IFSOCK:
-                        node = "/systemd/inaccessible/sock";
-                        break;
-        }
+        node = inode_type_to_string(mode);
         if (!node)
                 return -EINVAL;
 
-        d = path_join(runtime_dir, node);
+        d = path_join(runtime_dir, "systemd/inaccessible", node);
         if (!d)
                 return -ENOMEM;