_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);
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. */
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) {