X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fdnode.c;h=5438f60d0003587b61bac4b5331f46ec7ae3f891;hb=b18019d2d810585185493c62e9567fa85e51692c;hp=f26aef22cf646722d937fce872409dd79caee83e;hpb=c65aa5b2b9c48375ea1c451f252f0056e16f4e49;p=zfs.git diff --git a/module/zfs/dnode.c b/module/zfs/dnode.c index f26aef2..5438f60 100644 --- a/module/zfs/dnode.c +++ b/module/zfs/dnode.c @@ -52,12 +52,14 @@ static kmem_cache_t *dnode_cache; #define DNODE_STAT_ADD(stat) /* nothing */ #endif /* DNODE_STATS */ -static dnode_phys_t dnode_phys_zero; +ASSERTV(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 */ /* ARGSUSED */ static int @@ -169,9 +171,8 @@ void dnode_init(void) { ASSERT(dnode_cache == NULL); - dnode_cache = kmem_cache_create("dnode_t", - sizeof (dnode_t), - 0, dnode_cons, dnode_dest, NULL, NULL, NULL, 0); + dnode_cache = kmem_cache_create("dnode_t", sizeof (dnode_t), + 0, dnode_cons, dnode_dest, NULL, NULL, NULL, KMC_KMEM); kmem_cache_set_move(dnode_cache, dnode_move); } @@ -625,6 +626,7 @@ dnode_reallocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, mutex_exit(&dn->dn_mtx); } +#ifdef _KERNEL #ifdef DNODE_STATS static struct { uint64_t dms_dnode_invalid; @@ -775,7 +777,6 @@ dnode_move_impl(dnode_t *odn, dnode_t *ndn) odn->dn_moved = (uint8_t)-1; } -#ifdef _KERNEL /*ARGSUSED*/ static kmem_cbrc_t dnode_move(void *buf, void *newbuf, size_t size, void *arg) @@ -1072,7 +1073,8 @@ dnode_hold_impl(objset_t *os, uint64_t object, int flag, int i; dnode_children_t *winner; children_dnodes = kmem_alloc(sizeof (dnode_children_t) + - (epb - 1) * sizeof (dnode_handle_t), KM_SLEEP); + (epb - 1) * sizeof (dnode_handle_t), + KM_PUSHPAGE | KM_NODEBUG); children_dnodes->dnc_count = epb; dnh = &children_dnodes->dnc_children[0]; for (i = 0; i < epb; i++) {