Let migration_fd_valid() report the error itself, instead of duplicating the error message in both callers. This also prepares for adding one more check (with a different error message) to the function.
Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> --- migration/fd.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/migration/fd.c b/migration/fd.c index 02b39b150eb..78a27caca22 100644 --- a/migration/fd.c +++ b/migration/fd.c @@ -37,16 +37,14 @@ static bool fd_is_pipe(int fd) return S_ISFIFO(statbuf.st_mode); } -static bool migration_fd_valid(int fd) +static bool migration_fd_valid(int fd, Error **errp) { - if (fd_is_socket(fd)) { - return true; - } - - if (fd_is_pipe(fd)) { + if (fd_is_socket(fd) || fd_is_pipe(fd)) { return true; } + error_setg(errp, "fd: migration to a file is not supported." + " Use file: instead."); return false; } @@ -59,9 +57,7 @@ QIOChannel *fd_connect_outgoing(MigrationState *s, const char *fdname, goto out; } - if (!migration_fd_valid(fd)) { - error_setg(errp, "fd: migration to a file is not supported." - " Use file: instead."); + if (!migration_fd_valid(fd, errp)) { close(fd); goto out; } @@ -95,9 +91,7 @@ void fd_connect_incoming(const char *fdname, Error **errp) return; } - if (!migration_fd_valid(fd)) { - error_setg(errp, "fd: migration to a file is not supported." - " Use file: instead."); + if (!migration_fd_valid(fd, errp)) { close(fd); return; } -- 2.43.0
