Author: mav
Date: Sat Apr  2 08:24:23 2016
New Revision: 297505
URL: https://svnweb.freebsd.org/changeset/base/297505

Log:
  6739 userland version of cv_timedwait_hires() always assumes absolute time
  
  Reviewed by: Paul Dagnelie <p...@delphix.com>
  Reviewed by: Matthew Ahrens <mahr...@delphix.com>
  Reviewed by: Dan McDonald <dan...@omniti.com>
  Reviewed by: Robert Mustacchi <r...@joyent.com>
  Approved by: Robert Mustacchi <r...@joyent.com>
  Author: George Wilson <george.wil...@delphix.com>
  
  illumos/illumos-gate@41c6413cb54bf338d7a59ed789ec2e0e44c35e6f

Modified:
  vendor/illumos/dist/lib/libzpool/common/kernel.c
  vendor/illumos/dist/lib/libzpool/common/sys/zfs_context.h

Modified: vendor/illumos/dist/lib/libzpool/common/kernel.c
==============================================================================
--- vendor/illumos/dist/lib/libzpool/common/kernel.c    Sat Apr  2 08:19:41 
2016        (r297504)
+++ vendor/illumos/dist/lib/libzpool/common/kernel.c    Sat Apr  2 08:24:23 
2016        (r297505)
@@ -343,10 +343,13 @@ cv_timedwait_hires(kcondvar_t *cv, kmute
        timestruc_t ts;
        hrtime_t delta;
 
-       ASSERT(flag == 0);
+       ASSERT(flag == 0 || flag == CALLOUT_FLAG_ABSOLUTE);
 
 top:
-       delta = tim - gethrtime();
+       delta = tim;
+       if (flag & CALLOUT_FLAG_ABSOLUTE)
+               delta -= gethrtime();
+
        if (delta <= 0)
                return (-1);
 

Modified: vendor/illumos/dist/lib/libzpool/common/sys/zfs_context.h
==============================================================================
--- vendor/illumos/dist/lib/libzpool/common/sys/zfs_context.h   Sat Apr  2 
08:19:41 2016        (r297504)
+++ vendor/illumos/dist/lib/libzpool/common/sys/zfs_context.h   Sat Apr  2 
08:24:23 2016        (r297505)
@@ -21,7 +21,7 @@
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
- * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2015 by Delphix. All rights reserved.
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  */
 
@@ -277,6 +277,7 @@ extern gid_t *crgetgroups(cred_t *cr);
 typedef cond_t kcondvar_t;
 
 #define        CV_DEFAULT      USYNC_THREAD
+#define        CALLOUT_FLAG_ABSOLUTE   0x2
 
 extern void cv_init(kcondvar_t *cv, char *name, int type, void *arg);
 extern void cv_destroy(kcondvar_t *cv);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to