From: "Denis V. Lunev" <d...@openvz.org> Move the code from main() and nbd_client_thread() into the specific helper. This code is going to be grown.
Signed-off-by: Denis V. Lunev <d...@openvz.org> CC: Eric Blake <ebl...@redhat.com> CC: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> Message-ID: <20230906093210.339585-6-...@openvz.org> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Eric Blake <ebl...@redhat.com> --- qemu-nbd.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/qemu-nbd.c b/qemu-nbd.c index 86bb2f04e24..7c4e22def17 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -259,6 +259,16 @@ struct NbdClientOpts { bool verbose; }; +static void nbd_client_release_pipe(void) +{ + /* Close stderr so that the qemu-nbd process exits. */ + if (dup2(STDOUT_FILENO, STDERR_FILENO) < 0) { + error_report("Could not release pipe to parent: %s", + strerror(errno)); + exit(EXIT_FAILURE); + } +} + #if HAVE_NBD_DEVICE static void *show_parts(void *arg) { @@ -322,12 +332,7 @@ static void *nbd_client_thread(void *arg) fprintf(stderr, "NBD device %s is now connected to %s\n", opts->device, opts->srcpath); } else { - /* Close stderr so that the qemu-nbd process exits. */ - if (dup2(STDOUT_FILENO, STDERR_FILENO) < 0) { - error_report("Could not release pipe to parent: %s", - strerror(errno)); - exit(EXIT_FAILURE); - } + nbd_client_release_pipe(); } if (nbd_client(fd) < 0) { @@ -1176,11 +1181,7 @@ int main(int argc, char **argv) } if (opts.fork_process) { - if (dup2(STDOUT_FILENO, STDERR_FILENO) < 0) { - error_report("Could not release pipe to parent: %s", - strerror(errno)); - exit(EXIT_FAILURE); - } + nbd_client_release_pipe(); } state = RUNNING; -- 2.41.0