Author: smh
Date: Tue Jul 30 20:45:27 2013
New Revision: 253818
URL: http://svnweb.freebsd.org/changeset/base/253818

Log:
  MFV r253784:
  
  Fix zfs send -D hang after processing requiring a CTRL+C to interrupt due to
  pthread_join prior to fd close.
  
  This was introduced by r251646 (MFV r251644)
  
  Illumos ZFS issue:
    3909 "zfs send -D" does not work
  
  MFC after:    1 day

Modified:
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/cddl/contrib/opensolaris/lib/libzfs/   (props changed)

Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c   Tue Jul 
30 20:45:27 2013        (r253817)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c   Tue Jul 
30 20:45:27 2013        (r253818)
@@ -1576,8 +1576,8 @@ zfs_send(zfs_handle_t *zhp, const char *
        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);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to