From 4db0f040a97050c8ca01f90d50413b313d2fa0e3 Mon Sep 17 00:00:00 2001 From: smh Date: Fri, 2 Aug 2013 23:31:28 +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. Approved by: re (delphij) git-svn-id: svn://svn.freebsd.org/base/stable/9@253901 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