Merge commit 'refs/top-bases/linux-zfs-branch' into linux-zfs-branch
This commit is contained in:
commit
0e957b2515
|
@ -1033,18 +1033,11 @@ done:
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_KERNEL) && defined(HAVE_SPL)
|
#if defined(_KERNEL) && defined(HAVE_SPL)
|
||||||
static int __init avl_init(void)
|
static int avl_init(void) { return 0; }
|
||||||
{
|
static int avl_fini(void) { return 0; }
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void avl_fini(void)
|
spl_module_init(avl_init);
|
||||||
{
|
spl_module_exit(avl_fini);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(avl_init);
|
|
||||||
module_exit(avl_fini);
|
|
||||||
|
|
||||||
MODULE_AUTHOR("Sun Microsystems, Inc");
|
MODULE_AUTHOR("Sun Microsystems, Inc");
|
||||||
MODULE_DESCRIPTION("Generic AVL tree implementation");
|
MODULE_DESCRIPTION("Generic AVL tree implementation");
|
||||||
|
|
|
@ -3246,18 +3246,11 @@ nvs_xdr(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_KERNEL) && defined(HAVE_SPL)
|
#if defined(_KERNEL) && defined(HAVE_SPL)
|
||||||
static int __init nvpair_init(void)
|
static int nvpair_init(void) { return 0; }
|
||||||
{
|
static int nvpair_fini(void) { return 0; }
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void nvpair_fini(void)
|
spl_module_init(nvpair_init);
|
||||||
{
|
spl_module_exit(nvpair_fini);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(nvpair_init);
|
|
||||||
module_exit(nvpair_fini);
|
|
||||||
|
|
||||||
MODULE_AUTHOR("Sun Microsystems, Inc");
|
MODULE_AUTHOR("Sun Microsystems, Inc");
|
||||||
MODULE_DESCRIPTION("Generic name/value pair implementation");
|
MODULE_DESCRIPTION("Generic name/value pair implementation");
|
||||||
|
|
|
@ -2133,18 +2133,11 @@ u8_textprep_str(char *inarray, size_t *inlen, char *outarray, size_t *outlen,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_KERNEL) && defined(HAVE_SPL)
|
#if defined(_KERNEL) && defined(HAVE_SPL)
|
||||||
static int __init unicode_init(void)
|
static int unicode_init(void) { return 0; }
|
||||||
{
|
static int unicode_fini(void) { return 0; }
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void unicode_fini(void)
|
spl_module_init(unicode_init);
|
||||||
{
|
spl_module_exit(unicode_fini);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(unicode_init);
|
|
||||||
module_exit(unicode_fini);
|
|
||||||
|
|
||||||
MODULE_AUTHOR("Sun Microsystems, Inc");
|
MODULE_AUTHOR("Sun Microsystems, Inc");
|
||||||
MODULE_DESCRIPTION("Unicode implementation");
|
MODULE_DESCRIPTION("Unicode implementation");
|
||||||
|
|
|
@ -534,6 +534,16 @@ zfs_prop_align_right(zfs_prop_t prop)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_KERNEL) && defined(HAVE_SPL)
|
#if defined(_KERNEL) && defined(HAVE_SPL)
|
||||||
|
static int zcommon_init(void) { return 0; }
|
||||||
|
static int zcommon_fini(void) { return 0; }
|
||||||
|
|
||||||
|
spl_module_init(zcommon_init);
|
||||||
|
spl_module_exit(zcommon_fini);
|
||||||
|
|
||||||
|
MODULE_AUTHOR("Sun Microsystems, Inc");
|
||||||
|
MODULE_DESCRIPTION("Generic ZFS support");
|
||||||
|
MODULE_LICENSE("CDDL");
|
||||||
|
|
||||||
/* zfs dataset property functions */
|
/* zfs dataset property functions */
|
||||||
EXPORT_SYMBOL(zfs_userquota_prop_prefixes);
|
EXPORT_SYMBOL(zfs_userquota_prop_prefixes);
|
||||||
EXPORT_SYMBOL(zfs_prop_init);
|
EXPORT_SYMBOL(zfs_prop_init);
|
||||||
|
@ -555,21 +565,4 @@ EXPORT_SYMBOL(zfs_prop_index_to_string);
|
||||||
EXPORT_SYMBOL(zfs_prop_string_to_index);
|
EXPORT_SYMBOL(zfs_prop_string_to_index);
|
||||||
EXPORT_SYMBOL(zfs_prop_valid_for_type);
|
EXPORT_SYMBOL(zfs_prop_valid_for_type);
|
||||||
|
|
||||||
static int __init zcommon_init(void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void zcommon_fini(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(zcommon_init);
|
|
||||||
module_exit(zcommon_fini);
|
|
||||||
|
|
||||||
MODULE_AUTHOR("Sun Microsystems, Inc");
|
|
||||||
MODULE_DESCRIPTION("Generic ZFS support");
|
|
||||||
MODULE_LICENSE("CDDL");
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3947,6 +3947,8 @@ _init(void)
|
||||||
mutex_init(&zfs_share_lock, NULL, MUTEX_DEFAULT, NULL);
|
mutex_init(&zfs_share_lock, NULL, MUTEX_DEFAULT, NULL);
|
||||||
#endif /* HAVE_ZPL */
|
#endif /* HAVE_ZPL */
|
||||||
|
|
||||||
|
printk(KERN_INFO "ZFS: Loaded ZFS Filesystem v%s\n", ZFS_META_VERSION);
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3983,29 +3985,8 @@ _fini(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_SPL
|
#ifdef HAVE_SPL
|
||||||
int
|
spl_module_init(_init);
|
||||||
init(void)
|
spl_module_exit(_fini);
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
rc = _init();
|
|
||||||
if (!rc)
|
|
||||||
printk(KERN_INFO "ZFS: Loaded ZFS Filesystem v%s\n",
|
|
||||||
ZFS_META_VERSION);
|
|
||||||
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fini(void)
|
|
||||||
{
|
|
||||||
(void)_fini();
|
|
||||||
printk(KERN_INFO "ZFS: Unloaded ZFS Filesystem v%s\n",
|
|
||||||
ZFS_META_VERSION);
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(init);
|
|
||||||
module_exit(fini);
|
|
||||||
|
|
||||||
MODULE_AUTHOR("Sun Microsystems, Inc");
|
MODULE_AUTHOR("Sun Microsystems, Inc");
|
||||||
MODULE_DESCRIPTION("ZFS");
|
MODULE_DESCRIPTION("ZFS");
|
||||||
|
|
|
@ -1241,7 +1241,7 @@ static struct cdev zpios_cdev = {
|
||||||
.kobj = { .name = ZPIOS_NAME, },
|
.kobj = { .name = ZPIOS_NAME, },
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init
|
static int
|
||||||
zpios_init(void)
|
zpios_init(void)
|
||||||
{
|
{
|
||||||
dev_t dev;
|
dev_t dev;
|
||||||
|
@ -1278,7 +1278,7 @@ error:
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
zpios_fini(void)
|
zpios_fini(void)
|
||||||
{
|
{
|
||||||
dev_t dev = MKDEV(ZPIOS_MAJOR, 0);
|
dev_t dev = MKDEV(ZPIOS_MAJOR, 0);
|
||||||
|
@ -1288,11 +1288,11 @@ zpios_fini(void)
|
||||||
cdev_del(&zpios_cdev);
|
cdev_del(&zpios_cdev);
|
||||||
unregister_chrdev_region(dev, ZPIOS_MINORS);
|
unregister_chrdev_region(dev, ZPIOS_MINORS);
|
||||||
|
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(zpios_init);
|
spl_module_init(zpios_init);
|
||||||
module_exit(zpios_fini);
|
spl_module_exit(zpios_fini);
|
||||||
|
|
||||||
MODULE_AUTHOR("LLNL / Sun");
|
MODULE_AUTHOR("LLNL / Sun");
|
||||||
MODULE_DESCRIPTION("Kernel PIOS implementation");
|
MODULE_DESCRIPTION("Kernel PIOS implementation");
|
||||||
|
|
|
@ -10,22 +10,32 @@ nobase_pkglibexec_SCRIPTS += zpios-profile/*
|
||||||
EXTRA_DIST = zfs-update.sh $(nobase_pkglibexec_SCRIPTS)
|
EXTRA_DIST = zfs-update.sh $(nobase_pkglibexec_SCRIPTS)
|
||||||
|
|
||||||
ZFS=${top_srcdir}/scripts/zfs.sh
|
ZFS=${top_srcdir}/scripts/zfs.sh
|
||||||
|
ZCONFIG=${top_srcdir}/scripts/zconfig.sh
|
||||||
ZTEST=${top_builddir}/cmd/ztest/ztest
|
ZTEST=${top_builddir}/cmd/ztest/ztest
|
||||||
ZPIOS=${top_srcdir}/scripts/zpios.sh
|
ZPIOS=${top_srcdir}/scripts/zpios.sh
|
||||||
|
|
||||||
check:
|
check:
|
||||||
@$(ZFS) -v
|
|
||||||
@echo
|
@echo
|
||||||
@echo -n "===================================="
|
@echo -n "===================================="
|
||||||
@echo -n " ZTEST "
|
@echo -n " ZTEST "
|
||||||
@echo "===================================="
|
@echo "===================================="
|
||||||
@echo
|
@echo
|
||||||
|
@$(ZFS)
|
||||||
@$(ZTEST) -V
|
@$(ZTEST) -V
|
||||||
|
@$(ZFS) -u
|
||||||
|
@echo
|
||||||
|
@echo
|
||||||
|
@echo -n "===================================="
|
||||||
|
@echo -n " ZCONFIG "
|
||||||
|
@echo "===================================="
|
||||||
|
@echo
|
||||||
|
@$(ZCONFIG)
|
||||||
@echo
|
@echo
|
||||||
@echo -n "===================================="
|
@echo -n "===================================="
|
||||||
@echo -n " ZPIOS "
|
@echo -n " ZPIOS "
|
||||||
@echo "===================================="
|
@echo "===================================="
|
||||||
@echo
|
@echo
|
||||||
|
@$(ZFS)
|
||||||
@$(ZPIOS) -c file-raid0 -t tiny
|
@$(ZPIOS) -c file-raid0 -t tiny
|
||||||
@$(ZPIOS) -c file-raid10 -t tiny | tail -1
|
@$(ZPIOS) -c file-raid10 -t tiny | tail -1
|
||||||
@$(ZPIOS) -c file-raidz -t tiny | tail -1
|
@$(ZPIOS) -c file-raidz -t tiny | tail -1
|
||||||
|
@ -34,5 +44,5 @@ check:
|
||||||
@$(ZPIOS) -c lo-raid10 -t tiny | tail -1
|
@$(ZPIOS) -c lo-raid10 -t tiny | tail -1
|
||||||
@$(ZPIOS) -c lo-raidz -t tiny | tail -1
|
@$(ZPIOS) -c lo-raidz -t tiny | tail -1
|
||||||
@$(ZPIOS) -c lo-raidz2 -t tiny | tail -1
|
@$(ZPIOS) -c lo-raidz2 -t tiny | tail -1
|
||||||
|
@$(ZFS) -u
|
||||||
@echo
|
@echo
|
||||||
@$(ZFS) -vu
|
|
||||||
|
|
|
@ -53,6 +53,15 @@ msg() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pass() {
|
||||||
|
echo "PASS"
|
||||||
|
}
|
||||||
|
|
||||||
|
fail() {
|
||||||
|
echo "FAIL ($1)"
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
|
||||||
spl_dump_log() {
|
spl_dump_log() {
|
||||||
${SYSCTL} -w kernel.spl.debug.dump=1 &>/dev/null
|
${SYSCTL} -w kernel.spl.debug.dump=1 &>/dev/null
|
||||||
local NAME=`dmesg | tail -n 1 | cut -f5 -d' '`
|
local NAME=`dmesg | tail -n 1 | cut -f5 -d' '`
|
||||||
|
@ -109,6 +118,7 @@ load_module() {
|
||||||
}
|
}
|
||||||
|
|
||||||
load_modules() {
|
load_modules() {
|
||||||
|
mkdir -p /etc/zfs
|
||||||
|
|
||||||
for MOD in ${MODULES[*]}; do
|
for MOD in ${MODULES[*]}; do
|
||||||
local NAME=`basename ${MOD} .ko`
|
local NAME=`basename ${MOD} .ko`
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# ZFS/ZPOOL configuration test script.
|
||||||
|
|
||||||
|
SCRIPT_COMMON=common.sh
|
||||||
|
if [ -f ./${SCRIPT_COMMON} ]; then
|
||||||
|
. ./${SCRIPT_COMMON}
|
||||||
|
elif [ -f /usr/libexec/zfs/${SCRIPT_COMMON} ]; then
|
||||||
|
. /usr/libexec/zfs/${SCRIPT_COMMON}
|
||||||
|
else
|
||||||
|
echo "Missing helper script ${SCRIPT_COMMON}" && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROG=zconfig.sh
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat << EOF
|
||||||
|
USAGE:
|
||||||
|
$0 [hv]
|
||||||
|
|
||||||
|
DESCRIPTION:
|
||||||
|
ZFS/ZPOOL configuration tests
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
-h Show this message
|
||||||
|
-v Verbose
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
while getopts 'hv' OPTION; do
|
||||||
|
case $OPTION in
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
VERBOSE=1
|
||||||
|
;;
|
||||||
|
?)
|
||||||
|
usage
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $(id -u) != 0 ]; then
|
||||||
|
die "Must run as root"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate persistent zpool.cache configuration.
|
||||||
|
zconfig_test1() {
|
||||||
|
POOL_NAME=test1
|
||||||
|
TMP_FILE1=`mktemp`
|
||||||
|
TMP_FILE2=`mktemp`
|
||||||
|
|
||||||
|
echo -n "test 1 - persistent zpool.cache: "
|
||||||
|
|
||||||
|
# Create a pool save its status for comparison.
|
||||||
|
${ZFS_SH} || fail 1
|
||||||
|
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
|
||||||
|
${ZPOOL} status ${POOL_NAME} >${TMP_FILE1} || fail 3
|
||||||
|
|
||||||
|
# Unload/load the module stack to clear any configuration state
|
||||||
|
# then verify that the pool can be imported and is online.
|
||||||
|
${ZFS_SH} -u || fail 4
|
||||||
|
${ZFS_SH} || fail 5
|
||||||
|
${ZPOOL} import ${POOL_NAME} || fail 6
|
||||||
|
${ZPOOL} status ${POOL_NAME} >${TMP_FILE2} || fail 7
|
||||||
|
|
||||||
|
# Compare the original and imported pool status they should match
|
||||||
|
cmp ${TMP_FILE1} ${TMP_FILE2} || fail 8
|
||||||
|
|
||||||
|
# Cleanup the test pool and temporary file
|
||||||
|
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 -d || fail 9
|
||||||
|
rm -f ${TMP_FILE1} ${TMP_FILE2} || fail 10
|
||||||
|
${ZFS_SH} -u || fail 11
|
||||||
|
|
||||||
|
pass
|
||||||
|
}
|
||||||
|
|
||||||
|
zconfig_test1
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue