]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkfs-util: Redirect mkfs.vfat stdout to /dev/null 26775/head
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 12 Mar 2023 15:20:38 +0000 (16:20 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 12 Mar 2023 15:20:38 +0000 (16:20 +0100)
mkfs.vfat does not have a --quiet option so let's redirect its
stdout to /dev/null instead.

src/shared/mkfs-util.c

index e073d66f3cb4d35319e56e67fce76c510343c8b6..6c259009af4cbe65d2a715b031436d8ae8739c26 100644 (file)
@@ -271,6 +271,7 @@ int make_filesystem(
         _cleanup_strv_free_ char **argv = NULL;
         _cleanup_(unlink_and_freep) char *protofile = NULL;
         char vol_id[CONST_MAX(SD_ID128_UUID_STRING_MAX, 8U + 1U)] = {};
+        int stdio_fds[3] = { -EBADF, STDERR_FILENO, STDERR_FILENO};
         int r;
 
         assert(node);
@@ -442,6 +443,9 @@ int make_filesystem(
                                 return log_oom();
                 }
 
+                /* mkfs.vfat does not have a --quiet option so let's redirect stdout to /dev/null instead. */
+                stdio_fds[1] = -EBADF;
+
         } else if (streq(fstype, "swap"))
                 /* TODO: add --quiet here if
                  * https://github.com/util-linux/util-linux/issues/1499 resolved. */
@@ -473,7 +477,14 @@ int make_filesystem(
         if (extra_mkfs_args && strv_extend_strv(&argv, extra_mkfs_args, false) < 0)
                 return log_oom();
 
-        r = safe_fork("(mkfs)", FORK_RESET_SIGNALS|FORK_RLIMIT_NOFILE_SAFE|FORK_DEATHSIG|FORK_LOG|FORK_WAIT|FORK_STDOUT_TO_STDERR|FORK_CLOSE_ALL_FDS, NULL);
+        r = safe_fork_full(
+                        "(mkfs)",
+                        stdio_fds,
+                        /*except_fds=*/ NULL,
+                        /*n_except_fds=*/ 0,
+                        FORK_RESET_SIGNALS|FORK_RLIMIT_NOFILE_SAFE|FORK_DEATHSIG|FORK_LOG|FORK_WAIT|
+                        FORK_CLOSE_ALL_FDS|FORK_REARRANGE_STDIO,
+                        /*ret_pid=*/ NULL);
         if (r < 0)
                 return r;
         if (r == 0) {