svn commit: r329753 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/sys vendor-sys/illumos/dist/uts/common/sys/fm vendor/illumos/dist/cmd/zdb vendor/illumos/dist/cmd/...
Alexander Motin
mav at FreeBSD.org
Wed Feb 21 21:04:48 UTC 2018
Author: mav
Date: Wed Feb 21 21:04:46 2018
New Revision: 329753
URL: https://svnweb.freebsd.org/changeset/base/329753
Log:
8809 libzpool should leverage work done in libfakekernel
illumos/illumos-gate at f06dce2c1f0f3af78581e7574f65bfba843ddb6e
Reviewed by: Sebastien Roy <sebastien.roy at delphix.com>
Reviewed by: Prakash Surya <prakash.surya at delphix.com>
Reviewed by: Gordon Ross <gordon.w.ross at gmail.com>
Approved by: Richard Lowe <richlowe at richlowe.net>
Author: Andrew Stormont <astormont at racktopsystems.com>
Modified:
vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c
vendor-sys/illumos/dist/uts/common/sys/acl.h
vendor-sys/illumos/dist/uts/common/sys/bitmap.h
vendor-sys/illumos/dist/uts/common/sys/cpupart.h
vendor-sys/illumos/dist/uts/common/sys/cpuvar.h
vendor-sys/illumos/dist/uts/common/sys/fm/util.h
vendor-sys/illumos/dist/uts/common/sys/vnode.h
Changes in other areas also in this revision:
Modified:
vendor/illumos/dist/cmd/zdb/zdb.c
vendor/illumos/dist/cmd/ztest/ztest.c
vendor/illumos/dist/lib/libzpool/common/kernel.c
vendor/illumos/dist/lib/libzpool/common/sys/zfs_context.h
vendor/illumos/dist/lib/libzpool/common/taskq.c
vendor/illumos/dist/lib/libzpool/common/util.c
Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c Wed Feb 21 20:56:28 2018 (r329752)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c Wed Feb 21 21:04:46 2018 (r329753)
@@ -23,6 +23,7 @@
* 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>
@@ -59,7 +60,9 @@ 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)
@@ -213,7 +216,9 @@ dnode_init(void)
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
@@ -405,7 +410,9 @@ dnode_create(objset_t *os, dnode_phys_t *dnp, dmu_buf_
dnode_t *dn;
dn = kmem_cache_alloc(dnode_cache, KM_SLEEP);
+#ifdef _KERNEL
ASSERT(!POINTER_IS_VALID(dn->dn_objset));
+#endif /* _KERNEL */
dn->dn_moved = 0;
/*
@@ -697,6 +704,7 @@ static struct {
} dnode_move_stats;
#endif /* DNODE_STATS */
+#ifdef _KERNEL
static void
dnode_move_impl(dnode_t *odn, dnode_t *ndn)
{
@@ -833,7 +841,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)
Modified: vendor-sys/illumos/dist/uts/common/sys/acl.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/sys/acl.h Wed Feb 21 20:56:28 2018 (r329752)
+++ vendor-sys/illumos/dist/uts/common/sys/acl.h Wed Feb 21 21:04:46 2018 (r329753)
@@ -25,6 +25,7 @@
* Use is subject to license terms.
*
* Copyright 2014 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2017 RackTop Systems.
*/
#ifndef _SYS_ACL_H
@@ -138,7 +139,7 @@ typedef struct acl_info acl_t;
#define ACL_FLAGS_ALL (ACL_AUTO_INHERIT|ACL_PROTECTED| \
ACL_DEFAULTED)
-#ifdef _KERNEL
+#if defined(_KERNEL) || defined(_FAKE_KERNEL)
/*
* These are only applicable in a CIFS context.
Modified: vendor-sys/illumos/dist/uts/common/sys/bitmap.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/sys/bitmap.h Wed Feb 21 20:56:28 2018 (r329752)
+++ vendor-sys/illumos/dist/uts/common/sys/bitmap.h Wed Feb 21 21:04:46 2018 (r329753)
@@ -26,6 +26,7 @@
/*
* Copyright (c) 2014 by Delphix. All rights reserved.
+ * Copyright 2017 RackTop Systems.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
@@ -134,7 +135,7 @@ extern "C" {
#define BIT_ONLYONESET(u) \
((((u) == 0) ? 0 : ((u) & ((u) - 1)) == 0))
-#if defined(_KERNEL) && !defined(_ASM)
+#if (defined(_KERNEL) || defined(_FAKE_KERNEL)) && !defined(_ASM)
#include <sys/atomic.h>
/*
@@ -188,7 +189,7 @@ extern int odd_parity(ulong_t);
*/
#define BITX(u, h, l) (((u) >> (l)) & ((1LU << ((h) - (l) + 1LU)) - 1LU))
-#endif /* _KERNEL && !_ASM */
+#endif /* (_KERNEL || _FAKE_KERNEL) && !_ASM */
#ifdef __cplusplus
}
Modified: vendor-sys/illumos/dist/uts/common/sys/cpupart.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/sys/cpupart.h Wed Feb 21 20:56:28 2018 (r329752)
+++ vendor-sys/illumos/dist/uts/common/sys/cpupart.h Wed Feb 21 21:04:46 2018 (r329753)
@@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2017 RackTop Systems.
*/
#ifndef _SYS_CPUPART_H
@@ -40,7 +41,7 @@
extern "C" {
#endif
-#ifdef _KERNEL
+#if defined(_KERNEL) || defined(_FAKE_KERNEL)
typedef int cpupartid_t;
@@ -148,7 +149,7 @@ extern uint_t cpupart_list(psetid_t *, uint_t, int);
extern int cpupart_setattr(psetid_t, uint_t);
extern int cpupart_getattr(psetid_t, uint_t *);
-#endif /* _KERNEL */
+#endif /* _KERNEL || _FAKE_KERNEL */
#ifdef __cplusplus
}
Modified: vendor-sys/illumos/dist/uts/common/sys/cpuvar.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/sys/cpuvar.h Wed Feb 21 20:56:28 2018 (r329752)
+++ vendor-sys/illumos/dist/uts/common/sys/cpuvar.h Wed Feb 21 21:04:46 2018 (r329753)
@@ -23,6 +23,7 @@
* Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
* Copyright 2014 Igor Kozhukhov <ikozhukhov at gmail.com>.
+ * Copyright 2017 RackTop Systems.
*/
#ifndef _SYS_CPUVAR_H
@@ -32,6 +33,7 @@
#include <sys/sysinfo.h> /* has cpu_stat_t definition */
#include <sys/disp.h>
#include <sys/processor.h>
+#include <sys/kcpc.h> /* has kcpc_ctx_t definition */
#include <sys/loadavg.h>
#if (defined(_KERNEL) || defined(_KMEMUSER)) && defined(_MACHDEP)
@@ -614,9 +616,9 @@ extern struct cpu *curcpup(void);
#endif /* _KERNEL || _KMEMUSER */
/*
- * CPU support routines.
+ * CPU support routines (not for genassym.c)
*/
-#if defined(_KERNEL) && defined(__STDC__) /* not for genassym.c */
+#if (defined(_KERNEL) || defined(_FAKE_KERNEL)) && defined(__STDC__)
struct zone;
@@ -823,7 +825,7 @@ extern void populate_idstr(struct cpu *);
extern void cpu_vm_data_init(struct cpu *);
extern void cpu_vm_data_destroy(struct cpu *);
-#endif /* _KERNEL */
+#endif /* _KERNEL || _FAKE_KERNEL */
#ifdef __cplusplus
}
Modified: vendor-sys/illumos/dist/uts/common/sys/fm/util.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/sys/fm/util.h Wed Feb 21 20:56:28 2018 (r329752)
+++ vendor-sys/illumos/dist/uts/common/sys/fm/util.h Wed Feb 21 21:04:46 2018 (r329753)
@@ -21,6 +21,7 @@
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2017 RackTop Systems.
*/
#ifndef _SYS_FM_UTIL_H
@@ -70,7 +71,7 @@ typedef struct erpt_dump {
} ed_tod_base;
} erpt_dump_t;
-#ifdef _KERNEL
+#if defined(_KERNEL) || defined(_FAKE_KERNEL)
#include <sys/systm.h>
#define FM_STK_DEPTH 20 /* maximum stack depth */
@@ -94,7 +95,7 @@ extern void fm_ereport_post(nvlist_t *, int);
extern void fm_payload_stack_add(nvlist_t *, const pc_t *, int);
extern int is_fm_panic();
-#endif /* _KERNEL */
+#endif /* _KERNEL || _FAKE_KERNEL */
#ifdef __cplusplus
}
Modified: vendor-sys/illumos/dist/uts/common/sys/vnode.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/sys/vnode.h Wed Feb 21 20:56:28 2018 (r329752)
+++ vendor-sys/illumos/dist/uts/common/sys/vnode.h Wed Feb 21 21:04:46 2018 (r329753)
@@ -23,6 +23,7 @@
* Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, Joyent, Inc.
* Copyright (c) 2011, 2017 by Delphix. All rights reserved.
+ * Copyright 2017 RackTop Systems.
*/
/* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
@@ -340,6 +341,7 @@ typedef struct vnode {
#define IS_SWAPVP(vp) (((vp)->v_flag & (VISSWAP | VSWAPLIKE)) != 0)
+#ifdef _KERNEL
typedef struct vn_vfslocks_entry {
rwstlock_t ve_lock;
void *ve_vpvfs;
@@ -348,6 +350,7 @@ typedef struct vn_vfslocks_entry {
char pad[64 - sizeof (rwstlock_t) - 2 * sizeof (void *) - \
sizeof (uint32_t)];
} vn_vfslocks_entry_t;
+#endif
/*
* The following two flags are used to lock the v_vfsmountedhere field
More information about the svn-src-vendor
mailing list