Print this page
8115 parallel zfs mount

*** 21,30 **** --- 21,31 ---- /* * 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,67 **** --- 58,70 ---- 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,221 **** --- 214,226 ---- { 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,704 **** --- 700,710 ---- 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,841 **** */ 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; --- 837,846 ----