From 42052b384d726b1cba36aac3e8c5b6d8f4a4d107 Mon Sep 17 00:00:00 2001 From: smh Date: Fri, 2 Aug 2013 23:33:40 +0000 Subject: [PATCH] MFC r253818: Fix zfs send -D hang after processing requiring a CTRL+C to interrupt due to pthread_join prior to fd close. git-svn-id: svn://svn.freebsd.org/base/stable/8@253903 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c index d0eac1201..1fc46c24e 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c @@ -1576,8 +1576,8 @@ zfs_send(zfs_handle_t *zhp, const char *fromsnap, const char *tosnap, if (tid != 0) { if (err != 0) (void) pthread_cancel(tid); - (void) pthread_join(tid, NULL); (void) close(pipefd[0]); + (void) pthread_join(tid, NULL); } if (sdd.cleanup_fd != -1) { @@ -1613,8 +1613,8 @@ err_out: VERIFY(0 == close(sdd.cleanup_fd)); if (tid != 0) { (void) pthread_cancel(tid); - (void) pthread_join(tid, NULL); (void) close(pipefd[0]); + (void) pthread_join(tid, NULL); } return (err); } -- 2.45.0