diff options
author | Denis V. Lunev <den@openvz.org> | 2023-09-06 11:32:07 +0200 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2023-09-07 20:32:11 -0500 |
commit | 2eb7c2abe0b85a945549e91cb794d214c0905403 (patch) | |
tree | 1642d556ff383cdd713d510c8bdc764a27f84a5b /qemu-nbd.c | |
parent | b2cecdfee3e68297a4de26aa3188d4025bdef4ca (diff) |
qemu-nbd: invent nbd_client_release_pipe() helper
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 <den@openvz.org>
CC: Eric Blake <eblake@redhat.com>
CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20230906093210.339585-6-den@openvz.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'qemu-nbd.c')
-rw-r--r-- | qemu-nbd.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/qemu-nbd.c b/qemu-nbd.c index 86bb2f04e2..7c4e22def1 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; |