Print this page
8115 parallel zfs mount

@@ -21,10 +21,11 @@
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
+ * Copyright 2017 RackTop Systems.
  */
 
 #include <sys/zfs_context.h>
 #include <sys/dbuf.h>
 #include <sys/dnode.h>

@@ -57,11 +58,13 @@
 static dnode_phys_t dnode_phys_zero;
 
 int zfs_default_bs = SPA_MINBLOCKSHIFT;
 int zfs_default_ibs = DN_MAX_INDBLKSHIFT;
 
+#ifdef  _KERNEL
 static kmem_cbrc_t dnode_move(void *, void *, size_t, void *);
+#endif  /* _KERNEL */
 
 static int
 dbuf_compare(const void *x1, const void *x2)
 {
         const dmu_buf_impl_t *d1 = x1;

@@ -211,11 +214,13 @@
 {
         ASSERT(dnode_cache == NULL);
         dnode_cache = kmem_cache_create("dnode_t",
             sizeof (dnode_t),
             0, dnode_cons, dnode_dest, NULL, NULL, NULL, 0);
+#ifdef  _KERNEL
         kmem_cache_set_move(dnode_cache, dnode_move);
+#endif  /* _KERNEL */
 }
 
 void
 dnode_fini(void)
 {

@@ -695,10 +700,11 @@
         uint64_t dms_dnode_rwlock;
         uint64_t dms_dnode_active;
 } dnode_move_stats;
 #endif  /* DNODE_STATS */
 
+#ifdef  _KERNEL
 static void
 dnode_move_impl(dnode_t *odn, dnode_t *ndn)
 {
         int i;
 

@@ -831,11 +837,10 @@
          */
         ndn->dn_moved = 1;
         odn->dn_moved = (uint8_t)-1;
 }
 
-#ifdef  _KERNEL
 /*ARGSUSED*/
 static kmem_cbrc_t
 dnode_move(void *buf, void *newbuf, size_t size, void *arg)
 {
         dnode_t *odn = buf, *ndn = newbuf;