Fix spelling
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>> Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Haakan T Johansson <f96hajo@chalmers.se> Closes #5547 Closes #5543
This commit is contained in:
parent
a5e046eaac
commit
4e33ba4c38
|
@ -3249,7 +3249,7 @@ zdb_dump_block(char *label, void *buf, uint64_t size, int flags)
|
||||||
(void) printf("\n%s\n%6s %s 0123456789abcdef\n", label, "", hdr);
|
(void) printf("\n%s\n%6s %s 0123456789abcdef\n", label, "", hdr);
|
||||||
|
|
||||||
#ifdef _LITTLE_ENDIAN
|
#ifdef _LITTLE_ENDIAN
|
||||||
/* correct the endianess */
|
/* correct the endianness */
|
||||||
do_bswap = !do_bswap;
|
do_bswap = !do_bswap;
|
||||||
#endif
|
#endif
|
||||||
for (i = 0; i < nwords; i += 2) {
|
for (i = 0; i < nwords; i += 2) {
|
||||||
|
@ -3271,7 +3271,7 @@ zdb_dump_block(char *label, void *buf, uint64_t size, int flags)
|
||||||
* child[.child]* - For example: 0.1.1
|
* child[.child]* - For example: 0.1.1
|
||||||
*
|
*
|
||||||
* The second form can be used to specify arbitrary vdevs anywhere
|
* The second form can be used to specify arbitrary vdevs anywhere
|
||||||
* in the heirarchy. For example, in a pool with a mirror of
|
* in the hierarchy. For example, in a pool with a mirror of
|
||||||
* RAID-Zs, you can specify either RAID-Z vdev with 0.0 or 0.1 .
|
* RAID-Zs, you can specify either RAID-Z vdev with 0.0 or 0.1 .
|
||||||
*/
|
*/
|
||||||
static vdev_t *
|
static vdev_t *
|
||||||
|
|
|
@ -217,7 +217,7 @@ zfs_agent_dispatch(const char *class, const char *subclass, nvlist_t *nvl)
|
||||||
* On illumos these subscriptions reside in:
|
* On illumos these subscriptions reside in:
|
||||||
* /usr/lib/fm/fmd/plugins/zfs-retire.conf
|
* /usr/lib/fm/fmd/plugins/zfs-retire.conf
|
||||||
*
|
*
|
||||||
* NOTE: faults events come directy from our diagnosis engine
|
* NOTE: faults events come directly from our diagnosis engine
|
||||||
* and will not pass through the zfs kernel module.
|
* and will not pass through the zfs kernel module.
|
||||||
*/
|
*/
|
||||||
if (strcmp(class, FM_LIST_SUSPECT_CLASS) == 0 ||
|
if (strcmp(class, FM_LIST_SUSPECT_CLASS) == 0 ||
|
||||||
|
|
|
@ -477,7 +477,7 @@ zfs_iter_vdev(zpool_handle_t *zhp, nvlist_t *nvl, void *data)
|
||||||
} else if (dp->dd_compare != NULL) {
|
} else if (dp->dd_compare != NULL) {
|
||||||
/*
|
/*
|
||||||
* NOTE: On Linux there is an event for partition, so unlike
|
* NOTE: On Linux there is an event for partition, so unlike
|
||||||
* illumos, substring matching is not required to accomodate
|
* illumos, substring matching is not required to accommodate
|
||||||
* the partition suffix. An exact match will be present in
|
* the partition suffix. An exact match will be present in
|
||||||
* the dp->dd_compare value.
|
* the dp->dd_compare value.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -185,7 +185,7 @@ zed_udev_monitor(void *arg)
|
||||||
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
|
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Strongly typed device is the prefered filter
|
* Strongly typed device is the preferred filter
|
||||||
*/
|
*/
|
||||||
type = udev_device_get_property_value(dev, "ID_FS_TYPE");
|
type = udev_device_get_property_value(dev, "ID_FS_TYPE");
|
||||||
if (type != NULL && type[0] != '\0') {
|
if (type != NULL && type[0] != '\0') {
|
||||||
|
|
|
@ -71,7 +71,7 @@ _zed_exec_create_env(zed_strings_t *zsp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fork a child process to handle event [eid]. The program [prog]
|
* Fork a child process to handle event [eid]. The program [prog]
|
||||||
* in directory [dir] is executed with the envionment [env].
|
* in directory [dir] is executed with the environment [env].
|
||||||
*
|
*
|
||||||
* The file descriptor [zfd] is the zevent_fd used to track the
|
* The file descriptor [zfd] is the zevent_fd used to track the
|
||||||
* current cursor location within the zevent nvlist.
|
* current cursor location within the zevent nvlist.
|
||||||
|
|
|
@ -2174,7 +2174,7 @@ zfs_do_upgrade(int argc, char **argv)
|
||||||
if (cb.cb_numfailed != 0)
|
if (cb.cb_numfailed != 0)
|
||||||
ret = 1;
|
ret = 1;
|
||||||
} else {
|
} else {
|
||||||
/* List old-version filesytems */
|
/* List old-version filesystems */
|
||||||
boolean_t found;
|
boolean_t found;
|
||||||
(void) printf(gettext("This system is currently running "
|
(void) printf(gettext("This system is currently running "
|
||||||
"ZFS filesystem version %llu.\n\n"), ZPL_VERSION);
|
"ZFS filesystem version %llu.\n\n"), ZPL_VERSION);
|
||||||
|
@ -3376,7 +3376,7 @@ zfs_do_promote(int argc, char **argv)
|
||||||
*
|
*
|
||||||
* -r Delete any intervening snapshots before doing rollback
|
* -r Delete any intervening snapshots before doing rollback
|
||||||
* -R Delete any snapshots and their clones
|
* -R Delete any snapshots and their clones
|
||||||
* -f ignored for backwards compatability
|
* -f ignored for backwards compatibility
|
||||||
*
|
*
|
||||||
* Given a filesystem, rollback to a specific snapshot, discarding any changes
|
* Given a filesystem, rollback to a specific snapshot, discarding any changes
|
||||||
* since then and making it the active dataset. If more recent snapshots exist,
|
* since then and making it the active dataset. If more recent snapshots exist,
|
||||||
|
|
|
@ -436,7 +436,7 @@ translate_raw(const char *str, zinject_record_t *record)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* A raw bookmark of the form objset:object:level:blkid, where each
|
* A raw bookmark of the form objset:object:level:blkid, where each
|
||||||
* number is a hexidecimal value.
|
* number is a hexadecimal value.
|
||||||
*/
|
*/
|
||||||
if (sscanf(str, "%llx:%llx:%x:%llx", (u_longlong_t *)&record->zi_objset,
|
if (sscanf(str, "%llx:%llx:%x:%llx", (u_longlong_t *)&record->zi_objset,
|
||||||
(u_longlong_t *)&record->zi_object, &record->zi_level,
|
(u_longlong_t *)&record->zi_object, &record->zi_level,
|
||||||
|
|
|
@ -282,7 +282,7 @@ usage(void)
|
||||||
"\n"
|
"\n"
|
||||||
"\t\tInject an error into pool 'pool' with the numeric bookmark\n"
|
"\t\tInject an error into pool 'pool' with the numeric bookmark\n"
|
||||||
"\t\tspecified by the remaining tuple. Each number is in\n"
|
"\t\tspecified by the remaining tuple. Each number is in\n"
|
||||||
"\t\thexidecimal, and only one block can be specified.\n"
|
"\t\thexadecimal, and only one block can be specified.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\tzinject [-q] <-t type> [-e errno] [-l level] [-r range]\n"
|
"\tzinject [-q] <-t type> [-e errno] [-l level] [-r range]\n"
|
||||||
"\t [-a] [-m] [-u] [-f freq] <object>\n"
|
"\t [-a] [-m] [-u] [-f freq] <object>\n"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* ZPIOS is a heavily modified version of the original PIOS test code.
|
* ZPIOS is a heavily modified version of the original PIOS test code.
|
||||||
* It is designed to have the test code running in the Linux kernel
|
* It is designed to have the test code running in the Linux kernel
|
||||||
* against ZFS while still being flexibly controled from user space.
|
* against ZFS while still being flexibly controlled from user space.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
||||||
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* ZPIOS is a heavily modified version of the original PIOS test code.
|
* ZPIOS is a heavily modified version of the original PIOS test code.
|
||||||
* It is designed to have the test code running in the Linux kernel
|
* It is designed to have the test code running in the Linux kernel
|
||||||
* against ZFS while still being flexibly controled from user space.
|
* against ZFS while still being flexibly controlled from user space.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
||||||
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
|
|
@ -1909,7 +1909,7 @@ show_import(nvlist_t *config)
|
||||||
|
|
||||||
case ZPOOL_STATUS_UNSUP_FEAT_READ:
|
case ZPOOL_STATUS_UNSUP_FEAT_READ:
|
||||||
(void) printf(gettext("status: The pool uses the following "
|
(void) printf(gettext("status: The pool uses the following "
|
||||||
"feature(s) not supported on this sytem:\n"));
|
"feature(s) not supported on this system:\n"));
|
||||||
zpool_print_unsup_feat(config);
|
zpool_print_unsup_feat(config);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -7251,7 +7251,7 @@ get_callback(zpool_handle_t *zhp, void *data)
|
||||||
* by a single tab.
|
* by a single tab.
|
||||||
* -o List of columns to display. Defaults to
|
* -o List of columns to display. Defaults to
|
||||||
* "name,property,value,source".
|
* "name,property,value,source".
|
||||||
* -p Diplay values in parsable (exact) format.
|
* -p Display values in parsable (exact) format.
|
||||||
*
|
*
|
||||||
* Get properties of pools in the system. Output space statistics
|
* Get properties of pools in the system. Output space statistics
|
||||||
* for each one as well as other attributes.
|
* for each one as well as other attributes.
|
||||||
|
|
|
@ -4,7 +4,7 @@ dnl # The VFS .create, .mkdir and .mknod callbacks were updated to take a
|
||||||
dnl # umode_t type rather than an int. The expectation is that any backport
|
dnl # umode_t type rather than an int. The expectation is that any backport
|
||||||
dnl # would also change all three prototypes. However, if it turns out that
|
dnl # would also change all three prototypes. However, if it turns out that
|
||||||
dnl # some distribution doesn't backport the whole thing this could be
|
dnl # some distribution doesn't backport the whole thing this could be
|
||||||
dnl # broken apart in to three seperate checks.
|
dnl # broken apart in to three separate checks.
|
||||||
dnl #
|
dnl #
|
||||||
AC_DEFUN([ZFS_AC_KERNEL_MKDIR_UMODE_T], [
|
AC_DEFUN([ZFS_AC_KERNEL_MKDIR_UMODE_T], [
|
||||||
AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t])
|
AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t])
|
||||||
|
|
|
@ -296,7 +296,7 @@ dnl #
|
||||||
AC_DEFUN([ZFS_AC_KERNEL_XATTR_HANDLER_LIST], [
|
AC_DEFUN([ZFS_AC_KERNEL_XATTR_HANDLER_LIST], [
|
||||||
dnl # 4.5 API change,
|
dnl # 4.5 API change,
|
||||||
dnl # The xattr_handler->list() callback was changed to take only a
|
dnl # The xattr_handler->list() callback was changed to take only a
|
||||||
dnl # dentry and it only needs to return if it's accessable.
|
dnl # dentry and it only needs to return if it's accessible.
|
||||||
AC_MSG_CHECKING([whether xattr_handler->list() wants simple])
|
AC_MSG_CHECKING([whether xattr_handler->list() wants simple])
|
||||||
ZFS_LINUX_TRY_COMPILE([
|
ZFS_LINUX_TRY_COMPILE([
|
||||||
#include <linux/xattr.h>
|
#include <linux/xattr.h>
|
||||||
|
|
|
@ -95,7 +95,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_COMMANDS_COMMON], [
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl #
|
dnl #
|
||||||
dnl # Linux commands, used withing 'is_linux' blocks of test scripts.
|
dnl # Linux commands, used within 'is_linux' blocks of test scripts.
|
||||||
dnl # These commands may take different command line arguments.
|
dnl # These commands may take different command line arguments.
|
||||||
dnl #
|
dnl #
|
||||||
AC_DEFUN([ZFS_AC_CONFIG_USER_COMMANDS_LINUX], [
|
AC_DEFUN([ZFS_AC_CONFIG_USER_COMMANDS_LINUX], [
|
||||||
|
|
|
@ -130,7 +130,7 @@ get_pools()
|
||||||
if [ -n "$npools" ]
|
if [ -n "$npools" ]
|
||||||
then
|
then
|
||||||
# Because we have found extra pool(s) here, which wasn't
|
# Because we have found extra pool(s) here, which wasn't
|
||||||
# found 'normaly', we need to force USE_DISK_BY_ID to
|
# found 'normally', we need to force USE_DISK_BY_ID to
|
||||||
# make sure we're able to actually import it/them later.
|
# make sure we're able to actually import it/them later.
|
||||||
USE_DISK_BY_ID='yes'
|
USE_DISK_BY_ID='yes'
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ import_pool()
|
||||||
# Make as sure as we can to not require '-f' to import.
|
# Make as sure as we can to not require '-f' to import.
|
||||||
"${ZPOOL}" status "$pool" > /dev/null 2>&1 && return 0
|
"${ZPOOL}" status "$pool" > /dev/null 2>&1 && return 0
|
||||||
|
|
||||||
# For backwards compability, make sure that ZPOOL_IMPORT_PATH is set
|
# For backwards compatibility, make sure that ZPOOL_IMPORT_PATH is set
|
||||||
# to something we can use later with the real import(s). We want to
|
# to something we can use later with the real import(s). We want to
|
||||||
# make sure we find all by* dirs, BUT by-vdev should be first (if it
|
# make sure we find all by* dirs, BUT by-vdev should be first (if it
|
||||||
# exists).
|
# exists).
|
||||||
|
@ -485,7 +485,7 @@ destroy_fs()
|
||||||
|
|
||||||
# Clone snapshot $1 to destination filesystem $2
|
# Clone snapshot $1 to destination filesystem $2
|
||||||
# Set 'canmount=noauto' and 'mountpoint=none' so that we get to keep
|
# Set 'canmount=noauto' and 'mountpoint=none' so that we get to keep
|
||||||
# manual controll over it's mounting (i.e., make sure it's not automatically
|
# manual control over it's mounting (i.e., make sure it's not automatically
|
||||||
# mounted with a 'zfs mount -a' in the init/systemd scripts).
|
# mounted with a 'zfs mount -a' in the init/systemd scripts).
|
||||||
clone_snap()
|
clone_snap()
|
||||||
{
|
{
|
||||||
|
@ -497,7 +497,7 @@ clone_snap()
|
||||||
|
|
||||||
# Clone the snapshot into a dataset we can boot from
|
# Clone the snapshot into a dataset we can boot from
|
||||||
# + We don't want this filesystem to be automatically mounted, we
|
# + We don't want this filesystem to be automatically mounted, we
|
||||||
# want controll over this here and nowhere else.
|
# want control over this here and nowhere else.
|
||||||
# + We don't need any mountpoint set for the same reason.
|
# + We don't need any mountpoint set for the same reason.
|
||||||
# We use the 'org.zol:mountpoint' property to remember the mountpoint.
|
# We use the 'org.zol:mountpoint' property to remember the mountpoint.
|
||||||
ZFS_CMD="${ZFS} clone -o canmount=noauto -o mountpoint=none"
|
ZFS_CMD="${ZFS} clone -o canmount=noauto -o mountpoint=none"
|
||||||
|
@ -585,7 +585,7 @@ EOT
|
||||||
echo -n " Snap nr [0-$((i-1))]? " > /dev/stderr
|
echo -n " Snap nr [0-$((i-1))]? " > /dev/stderr
|
||||||
read snapnr
|
read snapnr
|
||||||
|
|
||||||
# Reenable debugging.
|
# Re-enable debugging.
|
||||||
if [ -n "${debug}" ]; then
|
if [ -n "${debug}" ]; then
|
||||||
ZFS_DEBUG=1
|
ZFS_DEBUG=1
|
||||||
set -x
|
set -x
|
||||||
|
@ -795,7 +795,7 @@ mountroot()
|
||||||
# supported by ZoL (whatever it's for).
|
# supported by ZoL (whatever it's for).
|
||||||
if [ -z "$ZFS_RPOOL" ]
|
if [ -z "$ZFS_RPOOL" ]
|
||||||
then
|
then
|
||||||
# The ${zfs-bootfs} variable is set at the kernel commmand
|
# The ${zfs-bootfs} variable is set at the kernel command
|
||||||
# line, usually by GRUB, but it cannot be referenced here
|
# line, usually by GRUB, but it cannot be referenced here
|
||||||
# directly because bourne variable names cannot contain a
|
# directly because bourne variable names cannot contain a
|
||||||
# hyphen.
|
# hyphen.
|
||||||
|
|
|
@ -98,7 +98,7 @@ do_import_all_visible()
|
||||||
if [ -n "$npools" ]
|
if [ -n "$npools" ]
|
||||||
then
|
then
|
||||||
# Because we have found extra pool(s) here, which wasn't
|
# Because we have found extra pool(s) here, which wasn't
|
||||||
# found 'normaly', we need to force USE_DISK_BY_ID to
|
# found 'normally', we need to force USE_DISK_BY_ID to
|
||||||
# make sure we're able to actually import it/them later.
|
# make sure we're able to actually import it/them later.
|
||||||
USE_DISK_BY_ID='yes'
|
USE_DISK_BY_ID='yes'
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ do_import_all_visible()
|
||||||
available_pools="$apools"
|
available_pools="$apools"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For backwards compability, make sure that ZPOOL_IMPORT_PATH is set
|
# For backwards compatibility, make sure that ZPOOL_IMPORT_PATH is set
|
||||||
# to something we can use later with the real import(s). We want to
|
# to something we can use later with the real import(s). We want to
|
||||||
# make sure we find all by* dirs, BUT by-vdev should be first (if it
|
# make sure we find all by* dirs, BUT by-vdev should be first (if it
|
||||||
# exists).
|
# exists).
|
||||||
|
@ -157,7 +157,7 @@ do_import_all_visible()
|
||||||
local dirs
|
local dirs
|
||||||
dirs="$(for dir in $(echo /dev/disk/by-*)
|
dirs="$(for dir in $(echo /dev/disk/by-*)
|
||||||
do
|
do
|
||||||
# Ignore by-vdev here - we wan't it first!
|
# Ignore by-vdev here - we want it first!
|
||||||
echo "$dir" | grep -q /by-vdev && continue
|
echo "$dir" | grep -q /by-vdev && continue
|
||||||
[ ! -d "$dir" ] && continue
|
[ ! -d "$dir" ] && continue
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@ do_import_all_visible()
|
||||||
|
|
||||||
# Import by using ZPOOL_IMPORT_PATH (either set above or in
|
# Import by using ZPOOL_IMPORT_PATH (either set above or in
|
||||||
# the config file) _or_ with the 'built in' default search
|
# the config file) _or_ with the 'built in' default search
|
||||||
# paths. This is the prefered way.
|
# paths. This is the preferred way.
|
||||||
"$ZPOOL" import -N ${ZPOOL_IMPORT_OPTS} "$pool" 2> /dev/null
|
"$ZPOOL" import -N ${ZPOOL_IMPORT_OPTS} "$pool" 2> /dev/null
|
||||||
r="$?" ; RET=$((RET + r))
|
r="$?" ; RET=$((RET + r))
|
||||||
if [ "$r" -eq 0 ]
|
if [ "$r" -eq 0 ]
|
||||||
|
|
|
@ -73,7 +73,7 @@ do_mount()
|
||||||
zfs_action "Mounting ZFS filesystem(s)" \
|
zfs_action "Mounting ZFS filesystem(s)" \
|
||||||
"$ZFS" mount -a$verbose$overlay "$MOUNT_EXTRA_OPTIONS"
|
"$ZFS" mount -a$verbose$overlay "$MOUNT_EXTRA_OPTIONS"
|
||||||
|
|
||||||
# Require each volume/filesytem to have 'noauto' and no fsck
|
# Require each volume/filesystem to have 'noauto' and no fsck
|
||||||
# option. This shouldn't really be necessary, as long as one
|
# option. This shouldn't really be necessary, as long as one
|
||||||
# can get zfs-import to run sufficiently early on in the boot
|
# can get zfs-import to run sufficiently early on in the boot
|
||||||
# process - before local mounts. This is just here in case/if
|
# process - before local mounts. This is just here in case/if
|
||||||
|
|
|
@ -54,7 +54,7 @@ extern "C" {
|
||||||
* a DVA. These are buffers that hold dirty block copies
|
* a DVA. These are buffers that hold dirty block copies
|
||||||
* before they are written to stable storage. By definition,
|
* before they are written to stable storage. By definition,
|
||||||
* they are "ref'd" and are considered part of arc_mru
|
* they are "ref'd" and are considered part of arc_mru
|
||||||
* that cannot be freed. Generally, they will aquire a DVA
|
* that cannot be freed. Generally, they will acquire a DVA
|
||||||
* as they are written and migrate onto the arc_mru list.
|
* as they are written and migrate onto the arc_mru list.
|
||||||
*
|
*
|
||||||
* The ARC_l2c_only state is for buffers that are in the second
|
* The ARC_l2c_only state is for buffers that are in the second
|
||||||
|
|
|
@ -266,7 +266,7 @@ struct dnode {
|
||||||
* duplicate entries, we order the dbufs by an arbitrary value -
|
* duplicate entries, we order the dbufs by an arbitrary value -
|
||||||
* their address in memory. This means that dn_dbufs cannot be used to
|
* their address in memory. This means that dn_dbufs cannot be used to
|
||||||
* directly look up a dbuf. Instead, callers must use avl_walk, have
|
* directly look up a dbuf. Instead, callers must use avl_walk, have
|
||||||
* a reference to the dbuf, or look up a non-existant node with
|
* a reference to the dbuf, or look up a non-existent node with
|
||||||
* db_state = DB_SEARCH (see dbuf_free_range for an example).
|
* db_state = DB_SEARCH (see dbuf_free_range for an example).
|
||||||
*/
|
*/
|
||||||
avl_tree_t dn_dbufs;
|
avl_tree_t dn_dbufs;
|
||||||
|
|
|
@ -272,7 +272,7 @@ typedef struct efi_gpe_Attrs {
|
||||||
#define EFI_FREEDESKTOP_BOOT { 0xbc13c2ff, 0x59e6, 0x4262, 0xa3, 0x52, \
|
#define EFI_FREEDESKTOP_BOOT { 0xbc13c2ff, 0x59e6, 0x4262, 0xa3, 0x52, \
|
||||||
{ 0xb2, 0x75, 0xfd, 0x6f, 0x71, 0x72 } }
|
{ 0xb2, 0x75, 0xfd, 0x6f, 0x71, 0x72 } }
|
||||||
|
|
||||||
/* minimum # of bytes for partition table entires, per EFI spec */
|
/* minimum # of bytes for partition table entries, per EFI spec */
|
||||||
#define EFI_MIN_ARRAY_SIZE (16 * 1024)
|
#define EFI_MIN_ARRAY_SIZE (16 * 1024)
|
||||||
|
|
||||||
#define EFI_PART_NAME_LEN 36
|
#define EFI_PART_NAME_LEN 36
|
||||||
|
|
|
@ -894,7 +894,7 @@ typedef struct vdev_stat_ex {
|
||||||
* is passed between kernel and userland as an nvlist uint64 array.
|
* is passed between kernel and userland as an nvlist uint64 array.
|
||||||
*/
|
*/
|
||||||
typedef struct ddt_object {
|
typedef struct ddt_object {
|
||||||
uint64_t ddo_count; /* number of elments in ddt */
|
uint64_t ddo_count; /* number of elements in ddt */
|
||||||
uint64_t ddo_dspace; /* size of ddt on disk */
|
uint64_t ddo_dspace; /* size of ddt on disk */
|
||||||
uint64_t ddo_mspace; /* size of ddt in-core */
|
uint64_t ddo_mspace; /* size of ddt in-core */
|
||||||
} ddt_object_t;
|
} ddt_object_t;
|
||||||
|
|
|
@ -104,7 +104,7 @@ struct metaslab_class {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Metaslab groups encapsulate all the allocatable regions (i.e. metaslabs)
|
* Metaslab groups encapsulate all the allocatable regions (i.e. metaslabs)
|
||||||
* of a top-level vdev. They are linked togther to form a circular linked
|
* of a top-level vdev. They are linked together to form a circular linked
|
||||||
* list and can belong to only one metaslab class. Metaslab groups may become
|
* list and can belong to only one metaslab class. Metaslab groups may become
|
||||||
* ineligible for allocations for a number of reasons such as limited free
|
* ineligible for allocations for a number of reasons such as limited free
|
||||||
* space, fragmentation, or going offline. When this happens the allocator will
|
* space, fragmentation, or going offline. When this happens the allocator will
|
||||||
|
|
|
@ -270,7 +270,7 @@ struct spa {
|
||||||
uint64_t spa_errata; /* errata issues detected */
|
uint64_t spa_errata; /* errata issues detected */
|
||||||
spa_stats_t spa_stats; /* assorted spa statistics */
|
spa_stats_t spa_stats; /* assorted spa statistics */
|
||||||
hrtime_t spa_ccw_fail_time; /* Conf cache write fail time */
|
hrtime_t spa_ccw_fail_time; /* Conf cache write fail time */
|
||||||
taskq_t *spa_zvol_taskq; /* Taskq for minor managment */
|
taskq_t *spa_zvol_taskq; /* Taskq for minor management */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* spa_refcount & spa_config_lock must be the last elements
|
* spa_refcount & spa_config_lock must be the last elements
|
||||||
|
|
|
@ -65,7 +65,7 @@ extern "C" {
|
||||||
* grab all tc_open_locks, increment the tx_open_txg, and drop the locks.
|
* grab all tc_open_locks, increment the tx_open_txg, and drop the locks.
|
||||||
* The tc_open_lock is held until the transaction is assigned into the
|
* The tc_open_lock is held until the transaction is assigned into the
|
||||||
* transaction group. Typically, this is a short operation but if throttling
|
* transaction group. Typically, this is a short operation but if throttling
|
||||||
* is occuring it may be held for longer periods of time.
|
* is occurring it may be held for longer periods of time.
|
||||||
*/
|
*/
|
||||||
struct tx_cpu {
|
struct tx_cpu {
|
||||||
kmutex_t tc_open_lock; /* protects tx_open_txg */
|
kmutex_t tc_open_lock; /* protects tx_open_txg */
|
||||||
|
|
|
@ -73,7 +73,7 @@ typedef struct xoptattr {
|
||||||
* - a 32 bit quantity (xva_mapsize) that specifies the size of the
|
* - a 32 bit quantity (xva_mapsize) that specifies the size of the
|
||||||
* attribute bitmaps in 32 bit words.
|
* attribute bitmaps in 32 bit words.
|
||||||
* - A pointer to the returned attribute bitmap (needed because the
|
* - A pointer to the returned attribute bitmap (needed because the
|
||||||
* previous element, the requested attribute bitmap) is variable lenth.
|
* previous element, the requested attribute bitmap) is variable length.
|
||||||
* - The requested attribute bitmap, which is an array of 32 bit words.
|
* - The requested attribute bitmap, which is an array of 32 bit words.
|
||||||
* Callers use the XVA_SET_REQ() macro to set the bits corresponding to
|
* Callers use the XVA_SET_REQ() macro to set the bits corresponding to
|
||||||
* the attributes that are being requested.
|
* the attributes that are being requested.
|
||||||
|
@ -97,7 +97,7 @@ typedef struct xoptattr {
|
||||||
* attributes to be requested/returned. File systems may or may not support
|
* attributes to be requested/returned. File systems may or may not support
|
||||||
* optional attributes. They do so at their own discretion but if they do
|
* optional attributes. They do so at their own discretion but if they do
|
||||||
* support optional attributes, they must register the VFSFT_XVATTR feature
|
* support optional attributes, they must register the VFSFT_XVATTR feature
|
||||||
* so that the optional attributes can be set/retrived.
|
* so that the optional attributes can be set/retrieved.
|
||||||
*
|
*
|
||||||
* The fields of the xvattr structure are:
|
* The fields of the xvattr structure are:
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* ZPIOS is a heavily modified version of the original PIOS test code.
|
* ZPIOS is a heavily modified version of the original PIOS test code.
|
||||||
* It is designed to have the test code running in the Linux kernel
|
* It is designed to have the test code running in the Linux kernel
|
||||||
* against ZFS while still being flexibly controled from user space.
|
* against ZFS while still being flexibly controlled from user space.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
||||||
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* ZPIOS is a heavily modified version of the original PIOS test code.
|
* ZPIOS is a heavily modified version of the original PIOS test code.
|
||||||
* It is designed to have the test code running in the Linux kernel
|
* It is designed to have the test code running in the Linux kernel
|
||||||
* against ZFS while still being flexibly controled from user space.
|
* against ZFS while still being flexibly controlled from user space.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
||||||
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
|
|
@ -723,7 +723,7 @@ nfs_check_exportfs(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Provides a convenient wrapper for determing nfs availability
|
* Provides a convenient wrapper for determining nfs availability
|
||||||
*/
|
*/
|
||||||
static boolean_t
|
static boolean_t
|
||||||
nfs_available(void)
|
nfs_available(void)
|
||||||
|
|
|
@ -247,7 +247,7 @@ extern uint64_t atomic_swap_64(volatile uint64_t *, uint64_t);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Perform an exclusive atomic bit set/clear on a target.
|
* Perform an exclusive atomic bit set/clear on a target.
|
||||||
* Returns 0 if bit was sucessfully set/cleared, or -1
|
* Returns 0 if bit was successfully set/cleared, or -1
|
||||||
* if the bit was already set/cleared.
|
* if the bit was already set/cleared.
|
||||||
*/
|
*/
|
||||||
extern int atomic_set_long_excl(volatile ulong_t *, uint_t);
|
extern int atomic_set_long_excl(volatile ulong_t *, uint_t);
|
||||||
|
|
|
@ -158,7 +158,7 @@ struct dk_geom {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The following ioctls are generic in nature and need to be
|
* The following ioctls are generic in nature and need to be
|
||||||
* suported as appropriate by all disk drivers
|
* supported as appropriate by all disk drivers
|
||||||
*/
|
*/
|
||||||
#define DKIOCGGEOM (DKIOC|1) /* Get geometry */
|
#define DKIOCGGEOM (DKIOC|1) /* Get geometry */
|
||||||
#define DKIOCINFO (DKIOC|3) /* Get info */
|
#define DKIOCINFO (DKIOC|3) /* Get info */
|
||||||
|
|
|
@ -107,7 +107,7 @@ struct dk_map2 {
|
||||||
|
|
||||||
struct dkl_partition {
|
struct dkl_partition {
|
||||||
uint16_t p_tag; /* ID tag of partition */
|
uint16_t p_tag; /* ID tag of partition */
|
||||||
uint16_t p_flag; /* permision flags */
|
uint16_t p_flag; /* permission flags */
|
||||||
daddr32_t p_start; /* start sector no of partition */
|
daddr32_t p_start; /* start sector no of partition */
|
||||||
int32_t p_size; /* # of blocks in partition */
|
int32_t p_size; /* # of blocks in partition */
|
||||||
};
|
};
|
||||||
|
|
|
@ -902,7 +902,7 @@ zpool_prop_get_feature(zpool_handle_t *zhp, const char *propname, char *buf,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert from feature name to feature guid. This conversion is
|
* Convert from feature name to feature guid. This conversion is
|
||||||
* unecessary for unsupported@... properties because they already
|
* unnecessary for unsupported@... properties because they already
|
||||||
* use guids.
|
* use guids.
|
||||||
*/
|
*/
|
||||||
if (supported) {
|
if (supported) {
|
||||||
|
|
|
@ -100,7 +100,7 @@ Flush the ARC before injection.
|
||||||
.TP
|
.TP
|
||||||
.BI "\-b" " objset:object:level:start:end"
|
.BI "\-b" " objset:object:level:start:end"
|
||||||
Force an error into the pool at this bookmark tuple. Each number is
|
Force an error into the pool at this bookmark tuple. Each number is
|
||||||
in hexidecimal, and only one block can be specified.
|
in hexadecimal, and only one block can be specified.
|
||||||
.TP
|
.TP
|
||||||
.BI "\-d" " vdev"
|
.BI "\-d" " vdev"
|
||||||
A vdev specified by path or GUID.
|
A vdev specified by path or GUID.
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
* level parallelism, on a given CPU implementation in this case.
|
* level parallelism, on a given CPU implementation in this case.
|
||||||
*
|
*
|
||||||
* Special note on Intel EM64T. While Opteron CPU exhibits perfect
|
* Special note on Intel EM64T. While Opteron CPU exhibits perfect
|
||||||
* perfromance ratio of 1.5 between 64- and 32-bit flavors [see above],
|
* performance ratio of 1.5 between 64- and 32-bit flavors [see above],
|
||||||
* [currently available] EM64T CPUs apparently are far from it. On the
|
* [currently available] EM64T CPUs apparently are far from it. On the
|
||||||
* contrary, 64-bit version, sha512_block, is ~30% *slower* than 32-bit
|
* contrary, 64-bit version, sha512_block, is ~30% *slower* than 32-bit
|
||||||
* sha256_block:-( This is presumably because 64-bit shifts/rotates
|
* sha256_block:-( This is presumably because 64-bit shifts/rotates
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
* level parallelism, on a given CPU implementation in this case.
|
* level parallelism, on a given CPU implementation in this case.
|
||||||
*
|
*
|
||||||
* Special note on Intel EM64T. While Opteron CPU exhibits perfect
|
* Special note on Intel EM64T. While Opteron CPU exhibits perfect
|
||||||
* perfromance ratio of 1.5 between 64- and 32-bit flavors [see above],
|
* performance ratio of 1.5 between 64- and 32-bit flavors [see above],
|
||||||
* [currently available] EM64T CPUs apparently are far from it. On the
|
* [currently available] EM64T CPUs apparently are far from it. On the
|
||||||
* contrary, 64-bit version, sha512_block, is ~30% *slower* than 32-bit
|
* contrary, 64-bit version, sha512_block, is ~30% *slower* than 32-bit
|
||||||
* sha256_block:-( This is presumably because 64-bit shifts/rotates
|
* sha256_block:-( This is presumably because 64-bit shifts/rotates
|
||||||
|
|
|
@ -282,7 +282,7 @@ kcf_get_mech_provider(crypto_mech_type_t mech_type, kcf_mech_entry_t **mepp,
|
||||||
prov_chain = me->me_hw_prov_chain;
|
prov_chain = me->me_hw_prov_chain;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We check for the threshhold for using a hardware provider for
|
* We check for the threshold for using a hardware provider for
|
||||||
* this amount of data. If there is no software provider available
|
* this amount of data. If there is no software provider available
|
||||||
* for the mechanism, then the threshold is ignored.
|
* for the mechanism, then the threshold is ignored.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -100,7 +100,7 @@ kcf_mech_entry_tab_t kcf_mech_tabs_tab[KCF_LAST_OPSCLASS + 1] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Per-algorithm internal threasholds for the minimum input size of before
|
* Per-algorithm internal thresholds for the minimum input size of before
|
||||||
* offloading to hardware provider.
|
* offloading to hardware provider.
|
||||||
* Dispatching a crypto operation to a hardware provider entails paying the
|
* Dispatching a crypto operation to a hardware provider entails paying the
|
||||||
* cost of an additional context switch. Measurments with Sun Accelerator 4000
|
* cost of an additional context switch. Measurments with Sun Accelerator 4000
|
||||||
|
|
|
@ -35,7 +35,7 @@ extern "C" {
|
||||||
/*
|
/*
|
||||||
* NOTE: n2rng (Niagara2 RNG driver) accesses the state field of
|
* NOTE: n2rng (Niagara2 RNG driver) accesses the state field of
|
||||||
* SHA1_CTX directly. NEVER change this structure without verifying
|
* SHA1_CTX directly. NEVER change this structure without verifying
|
||||||
* compatiblity with n2rng. The important thing is that the state
|
* compatibility with n2rng. The important thing is that the state
|
||||||
* must be in a field declared as uint32_t state[5].
|
* must be in a field declared as uint32_t state[5].
|
||||||
*/
|
*/
|
||||||
/* SHA-1 context. */
|
/* SHA-1 context. */
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
* - it uses a pre-allocated buffer for memory allocations.
|
* - it uses a pre-allocated buffer for memory allocations.
|
||||||
* - it does _not_ free memory in the pre-allocated buffer.
|
* - it does _not_ free memory in the pre-allocated buffer.
|
||||||
*
|
*
|
||||||
* The reason for the selected implemention is simplicity.
|
* The reason for the selected implementation is simplicity.
|
||||||
* This allocator is designed for the usage in interrupt context when
|
* This allocator is designed for the usage in interrupt context when
|
||||||
* the caller may not wait for free memory.
|
* the caller may not wait for free memory.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -842,7 +842,7 @@ do_decomp(size_t uv, uchar_t *u8s, uchar_t *s, int sz,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* At this point, this rountine does not know what it would get.
|
* At this point, this routine does not know what it would get.
|
||||||
* The caller should sort it out if the state isn't a Hangul one.
|
* The caller should sort it out if the state isn't a Hangul one.
|
||||||
*/
|
*/
|
||||||
*state = U8_STATE_START;
|
*state = U8_STATE_START;
|
||||||
|
|
|
@ -143,7 +143,7 @@ zfs_prop_init(void)
|
||||||
{ "noallow", ZFS_ACL_NOALLOW },
|
{ "noallow", ZFS_ACL_NOALLOW },
|
||||||
{ "restricted", ZFS_ACL_RESTRICTED },
|
{ "restricted", ZFS_ACL_RESTRICTED },
|
||||||
{ "passthrough", ZFS_ACL_PASSTHROUGH },
|
{ "passthrough", ZFS_ACL_PASSTHROUGH },
|
||||||
{ "secure", ZFS_ACL_RESTRICTED }, /* bkwrd compatability */
|
{ "secure", ZFS_ACL_RESTRICTED }, /* bkwrd compatibility */
|
||||||
{ "passthrough-x", ZFS_ACL_PASSTHROUGH_X },
|
{ "passthrough-x", ZFS_ACL_PASSTHROUGH_X },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
|
@ -4438,7 +4438,7 @@ SPL_SHRINKER_DECLARE(arc_shrinker, arc_shrinker_func, DEFAULT_SEEKS);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Adapt arc info given the number of bytes we are trying to add and
|
* Adapt arc info given the number of bytes we are trying to add and
|
||||||
* the state that we are comming from. This function is only called
|
* the state that we are coming from. This function is only called
|
||||||
* when we are adding new content to the cache.
|
* when we are adding new content to the cache.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -150,7 +150,7 @@ int dbuf_cache_max_shift = 5;
|
||||||
* cache size). Once the eviction thread is woken up and eviction is required,
|
* cache size). Once the eviction thread is woken up and eviction is required,
|
||||||
* it will continue evicting buffers until it's able to reduce the cache size
|
* it will continue evicting buffers until it's able to reduce the cache size
|
||||||
* to the low water mark. If the cache size continues to grow and hits the high
|
* to the low water mark. If the cache size continues to grow and hits the high
|
||||||
* water mark, then callers adding elments to the cache will begin to evict
|
* water mark, then callers adding elements to the cache will begin to evict
|
||||||
* directly from the cache until the cache is no longer above the high water
|
* directly from the cache until the cache is no longer above the high water
|
||||||
* mark.
|
* mark.
|
||||||
*/
|
*/
|
||||||
|
@ -320,7 +320,7 @@ dbuf_hash_remove(dmu_buf_impl_t *db)
|
||||||
idx = hv & h->hash_table_mask;
|
idx = hv & h->hash_table_mask;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We musn't hold db_mtx to maintain lock ordering:
|
* We mustn't hold db_mtx to maintain lock ordering:
|
||||||
* DBUF_HASH_MUTEX > db_mtx.
|
* DBUF_HASH_MUTEX > db_mtx.
|
||||||
*/
|
*/
|
||||||
ASSERT(refcount_is_zero(&db->db_holds));
|
ASSERT(refcount_is_zero(&db->db_holds));
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
krwlock_t os_lock;
|
krwlock_t os_lock;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tunable to overwrite the maximum number of threads for the parallization
|
* Tunable to overwrite the maximum number of threads for the parallelization
|
||||||
* of dmu_objset_find_dp, needed to speed up the import of pools with many
|
* of dmu_objset_find_dp, needed to speed up the import of pools with many
|
||||||
* datasets.
|
* datasets.
|
||||||
* Default is 4 times the number of leaf vdevs.
|
* Default is 4 times the number of leaf vdevs.
|
||||||
|
|
|
@ -539,7 +539,7 @@ dnode_sync_free(dnode_t *dn, dmu_tx_t *tx)
|
||||||
dnode_rele(dn, (void *)(uintptr_t)tx->tx_txg);
|
dnode_rele(dn, (void *)(uintptr_t)tx->tx_txg);
|
||||||
/*
|
/*
|
||||||
* Now that we've released our hold, the dnode may
|
* Now that we've released our hold, the dnode may
|
||||||
* be evicted, so we musn't access it.
|
* be evicted, so we mustn't access it.
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ extern inline dsl_dataset_phys_t *dsl_dataset_phys(dsl_dataset_t *ds);
|
||||||
extern int spa_asize_inflation;
|
extern int spa_asize_inflation;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Figure out how much of this delta should be propogated to the dsl_dir
|
* Figure out how much of this delta should be propagated to the dsl_dir
|
||||||
* layer. If there's a refreservation, that space has already been
|
* layer. If there's a refreservation, that space has already been
|
||||||
* partially accounted for in our ancestors.
|
* partially accounted for in our ancestors.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -834,7 +834,7 @@ dsl_scan_visitbp(blkptr_t *bp, const zbookmark_phys_t *zb,
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If dsl_scan_ddt() has aready visited this block, it will have
|
* If dsl_scan_ddt() has already visited this block, it will have
|
||||||
* already done any translations or scrubbing, so don't call the
|
* already done any translations or scrubbing, so don't call the
|
||||||
* callback again.
|
* callback again.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -63,7 +63,7 @@ lz4_compress_zfs(void *s_start, void *d_start, size_t s_len,
|
||||||
return (s_len);
|
return (s_len);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Encode the compresed buffer size at the start. We'll need this in
|
* Encode the compressed buffer size at the start. We'll need this in
|
||||||
* decompression to counter the effects of padding which might be
|
* decompression to counter the effects of padding which might be
|
||||||
* added to the compressed buffer and which, if unhandled, would
|
* added to the compressed buffer and which, if unhandled, would
|
||||||
* confuse the hell out of our decompression function.
|
* confuse the hell out of our decompression function.
|
||||||
|
@ -205,7 +205,7 @@ lz4_decompress_zfs(void *s_start, void *d_start, size_t s_len,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Little Endian or Big Endian?
|
* Little Endian or Big Endian?
|
||||||
* Note: overwrite the below #define if you know your architecture endianess.
|
* Note: overwrite the below #define if you know your architecture endianness.
|
||||||
*/
|
*/
|
||||||
#if defined(_BIG_ENDIAN)
|
#if defined(_BIG_ENDIAN)
|
||||||
#define LZ4_BIG_ENDIAN 1
|
#define LZ4_BIG_ENDIAN 1
|
||||||
|
|
|
@ -1989,7 +1989,7 @@ metaslab_sync(metaslab_t *msp, uint64_t txg)
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Since the space map is not loaded we simply update the
|
* Since the space map is not loaded we simply update the
|
||||||
* exisiting histogram with what was freed in this txg. This
|
* existing histogram with what was freed in this txg. This
|
||||||
* means that the on-disk histogram may not have an accurate
|
* means that the on-disk histogram may not have an accurate
|
||||||
* view of the free space but it's close enough to allow
|
* view of the free space but it's close enough to allow
|
||||||
* us to make allocation decisions.
|
* us to make allocation decisions.
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The passed credentials cannot be directly verified because Linux only
|
* The passed credentials cannot be directly verified because Linux only
|
||||||
* provides and interface to check the *current* proces credentials. In
|
* provides and interface to check the *current* process credentials. In
|
||||||
* order to handle this the capable() test is only run when the passed
|
* order to handle this the capable() test is only run when the passed
|
||||||
* credentials match the current process credentials or the kcred. In
|
* credentials match the current process credentials or the kcred. In
|
||||||
* all other cases this function must fail and return the passed err.
|
* all other cases this function must fail and return the passed err.
|
||||||
|
|
|
@ -313,8 +313,8 @@ rrw_tsd_destroy(void *arg)
|
||||||
* The idea is to split single busy lock into array of locks, so that
|
* The idea is to split single busy lock into array of locks, so that
|
||||||
* each reader can lock only one of them for read, depending on result
|
* each reader can lock only one of them for read, depending on result
|
||||||
* of simple hash function. That proportionally reduces lock congestion.
|
* of simple hash function. That proportionally reduces lock congestion.
|
||||||
* Writer same time has to sequentially aquire write on all the locks.
|
* Writer at the same time has to sequentially acquire write on all the locks.
|
||||||
* That makes write aquisition proportionally slower, but in places where
|
* That makes write acquisition proportionally slower, but in places where
|
||||||
* it is used (filesystem unmount) performance is not critical.
|
* it is used (filesystem unmount) performance is not critical.
|
||||||
*
|
*
|
||||||
* All the functions below are direct wrappers around functions above.
|
* All the functions below are direct wrappers around functions above.
|
||||||
|
|
|
@ -1245,7 +1245,7 @@ sa_byteswap(sa_handle_t *hdl, sa_buf_type_t buftype)
|
||||||
sa_hdr_phys->sa_layout_info = BSWAP_16(sa_hdr_phys->sa_layout_info);
|
sa_hdr_phys->sa_layout_info = BSWAP_16(sa_hdr_phys->sa_layout_info);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Determine number of variable lenghts in header
|
* Determine number of variable lengths in header
|
||||||
* The standard 8 byte header has one for free and a
|
* The standard 8 byte header has one for free and a
|
||||||
* 16 byte header would have 4 + 1;
|
* 16 byte header would have 4 + 1;
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -3677,7 +3677,7 @@ spa_set_aux_vdevs(spa_aux_vdev_t *sav, nvlist_t **devs, int ndevs,
|
||||||
nvlist_t **newdevs;
|
nvlist_t **newdevs;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generate new dev list by concatentating with the
|
* Generate new dev list by concatenating with the
|
||||||
* current dev list.
|
* current dev list.
|
||||||
*/
|
*/
|
||||||
VERIFY(nvlist_lookup_nvlist_array(sav->sav_config, config,
|
VERIFY(nvlist_lookup_nvlist_array(sav->sav_config, config,
|
||||||
|
@ -6274,7 +6274,7 @@ spa_sync_props(void *arg, dmu_tx_t *tx)
|
||||||
case ZPOOL_PROP_VERSION:
|
case ZPOOL_PROP_VERSION:
|
||||||
intval = fnvpair_value_uint64(elem);
|
intval = fnvpair_value_uint64(elem);
|
||||||
/*
|
/*
|
||||||
* The version is synced seperatly before other
|
* The version is synced separately before other
|
||||||
* properties and should be correct by now.
|
* properties and should be correct by now.
|
||||||
*/
|
*/
|
||||||
ASSERT3U(spa_version(spa), >=, intval);
|
ASSERT3U(spa_version(spa), >=, intval);
|
||||||
|
@ -6304,7 +6304,7 @@ spa_sync_props(void *arg, dmu_tx_t *tx)
|
||||||
* We need to dirty the configuration on all the vdevs
|
* We need to dirty the configuration on all the vdevs
|
||||||
* so that their labels get updated. It's unnecessary
|
* so that their labels get updated. It's unnecessary
|
||||||
* to do this for pool creation since the vdev's
|
* to do this for pool creation since the vdev's
|
||||||
* configuratoin has already been dirtied.
|
* configuration has already been dirtied.
|
||||||
*/
|
*/
|
||||||
if (tx->tx_txg != TXG_INITIAL)
|
if (tx->tx_txg != TXG_INITIAL)
|
||||||
vdev_config_dirty(spa->spa_root_vdev);
|
vdev_config_dirty(spa->spa_root_vdev);
|
||||||
|
|
|
@ -222,7 +222,7 @@ spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl)
|
||||||
* the configuration has been synced to the MOS. This exposes a window where
|
* the configuration has been synced to the MOS. This exposes a window where
|
||||||
* the MOS config will have been updated but the cache file has not. If
|
* the MOS config will have been updated but the cache file has not. If
|
||||||
* the system were to crash at that instant then the cached config may not
|
* the system were to crash at that instant then the cached config may not
|
||||||
* contain the correct information to open the pool and an explicity import
|
* contain the correct information to open the pool and an explicit import
|
||||||
* would be required.
|
* would be required.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
|
|
|
@ -106,7 +106,7 @@ spa_read_history_addr(kstat_t *ksp, loff_t n)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When the kstat is written discard all spa_read_history_t entires. The
|
* When the kstat is written discard all spa_read_history_t entries. The
|
||||||
* ssh->lock will be held until ksp->ks_ndata entries are processed.
|
* ssh->lock will be held until ksp->ks_ndata entries are processed.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
|
@ -327,7 +327,7 @@ spa_txg_history_addr(kstat_t *ksp, loff_t n)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When the kstat is written discard all spa_txg_history_t entires. The
|
* When the kstat is written discard all spa_txg_history_t entries. The
|
||||||
* ssh->lock will be held until ksp->ks_ndata entries are processed.
|
* ssh->lock will be held until ksp->ks_ndata entries are processed.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -2706,7 +2706,7 @@ vdev_clear(spa_t *spa, vdev_t *vd)
|
||||||
!vdev_readable(vd) || !vdev_writeable(vd)) {
|
!vdev_readable(vd) || !vdev_writeable(vd)) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When reopening in reponse to a clear event, it may be due to
|
* When reopening in response to a clear event, it may be due to
|
||||||
* a fmadm repair request. In this case, if the device is
|
* a fmadm repair request. In this case, if the device is
|
||||||
* still broken, we want to still post the ereport again.
|
* still broken, we want to still post the ereport again.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -153,7 +153,7 @@ vdev_mirror_load(mirror_map_t *mm, vdev_t *vd, uint64_t zio_offset)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Apply half the seek increment to I/O's within seek offset
|
* Apply half the seek increment to I/O's within seek offset
|
||||||
* of the last I/O queued to this vdev as they should incure less
|
* of the last I/O queued to this vdev as they should incur less
|
||||||
* of a seek increment.
|
* of a seek increment.
|
||||||
*/
|
*/
|
||||||
if (ABS(lastoffset - zio_offset) <
|
if (ABS(lastoffset - zio_offset) <
|
||||||
|
|
|
@ -124,7 +124,7 @@ zap_hash(zap_name_t *zn)
|
||||||
* Don't use all 64 bits, since we need some in the cookie for
|
* Don't use all 64 bits, since we need some in the cookie for
|
||||||
* the collision differentiator. We MUST use the high bits,
|
* the collision differentiator. We MUST use the high bits,
|
||||||
* since those are the ones that we first pay attention to when
|
* since those are the ones that we first pay attention to when
|
||||||
* chosing the bucket.
|
* choosing the bucket.
|
||||||
*/
|
*/
|
||||||
h &= ~((1ULL << (64 - zap_hashbits(zap))) - 1);
|
h &= ~((1ULL << (64 - zap_hashbits(zap))) - 1);
|
||||||
|
|
||||||
|
|
|
@ -4307,7 +4307,7 @@ zfs_ioc_recv_impl(char *tofs, char *tosnap, char *origin,
|
||||||
/*
|
/*
|
||||||
* dsl_props_set() will not convert RECEIVED to LOCAL on or
|
* dsl_props_set() will not convert RECEIVED to LOCAL on or
|
||||||
* after SPA_VERSION_RECVD_PROPS, so we need to specify LOCAL
|
* after SPA_VERSION_RECVD_PROPS, so we need to specify LOCAL
|
||||||
* explictly if we're restoring local properties cleared in the
|
* explicitly if we're restoring local properties cleared in the
|
||||||
* first new-style receive.
|
* first new-style receive.
|
||||||
*/
|
*/
|
||||||
if (origprops != NULL &&
|
if (origprops != NULL &&
|
||||||
|
|
|
@ -870,7 +870,7 @@ zfs_replay_acl_v0(zfs_sb_t *zsb, lr_acl_v0_t *lr, boolean_t byteswap)
|
||||||
* The FUID table index may no longer be valid and
|
* The FUID table index may no longer be valid and
|
||||||
* during zfs_create() a new index may be assigned.
|
* during zfs_create() a new index may be assigned.
|
||||||
* Because of this the log will contain the original
|
* Because of this the log will contain the original
|
||||||
* doman+rid in order to create a new FUID.
|
* domain+rid in order to create a new FUID.
|
||||||
*
|
*
|
||||||
* The individual ACEs may contain an ephemeral uid/gid which is no
|
* The individual ACEs may contain an ephemeral uid/gid which is no
|
||||||
* longer valid and will need to be replaced with an actual FUID.
|
* longer valid and will need to be replaced with an actual FUID.
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
* Otherwise, the proxy lock is split into smaller lock ranges and
|
* Otherwise, the proxy lock is split into smaller lock ranges and
|
||||||
* new proxy locks created for non overlapping ranges.
|
* new proxy locks created for non overlapping ranges.
|
||||||
* The reference counts are adjusted accordingly.
|
* The reference counts are adjusted accordingly.
|
||||||
* Meanwhile, the orginal lock is kept around (this is the callers handle)
|
* Meanwhile, the original lock is kept around (this is the callers handle)
|
||||||
* and its offset and length are used when releasing the lock.
|
* and its offset and length are used when releasing the lock.
|
||||||
*
|
*
|
||||||
* Thread coordination
|
* Thread coordination
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
*
|
*
|
||||||
* Grow block handling
|
* Grow block handling
|
||||||
* -------------------
|
* -------------------
|
||||||
* ZFS supports multiple block sizes currently upto 128K. The smallest
|
* ZFS supports multiple block sizes currently up to 128K. The smallest
|
||||||
* block size is used for the file which is grown as needed. During this
|
* block size is used for the file which is grown as needed. During this
|
||||||
* growth all other writers and readers must be excluded.
|
* growth all other writers and readers must be excluded.
|
||||||
* So if the block size needs to be grown then the whole file is
|
* So if the block size needs to be grown then the whole file is
|
||||||
|
|
|
@ -857,7 +857,7 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear Set-UID/Set-GID bits on successful write if not
|
* Clear Set-UID/Set-GID bits on successful write if not
|
||||||
* privileged and at least one of the excute bits is set.
|
* privileged and at least one of the execute bits is set.
|
||||||
*
|
*
|
||||||
* It would be nice to to this after all writes have
|
* It would be nice to to this after all writes have
|
||||||
* been done, but that would still expose the ISUID/ISGID
|
* been done, but that would still expose the ISUID/ISGID
|
||||||
|
@ -2127,7 +2127,7 @@ top:
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Grab a lock on the directory to make sure that noone is
|
* Grab a lock on the directory to make sure that no one is
|
||||||
* trying to add (or lookup) entries while we are removing it.
|
* trying to add (or lookup) entries while we are removing it.
|
||||||
*/
|
*/
|
||||||
rw_enter(&zp->z_name_lock, RW_WRITER);
|
rw_enter(&zp->z_name_lock, RW_WRITER);
|
||||||
|
|
|
@ -544,7 +544,7 @@ zil_create(zilog_t *zilog)
|
||||||
/*
|
/*
|
||||||
* Allocate an initial log block if:
|
* Allocate an initial log block if:
|
||||||
* - there isn't one already
|
* - there isn't one already
|
||||||
* - the existing block is the wrong endianess
|
* - the existing block is the wrong endianness
|
||||||
*/
|
*/
|
||||||
if (BP_IS_HOLE(&blk) || BP_SHOULD_BYTESWAP(&blk)) {
|
if (BP_IS_HOLE(&blk) || BP_SHOULD_BYTESWAP(&blk)) {
|
||||||
tx = dmu_tx_create(zilog->zl_os);
|
tx = dmu_tx_create(zilog->zl_os);
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
* are the security.selinux xattrs which are less than 100 bytes and
|
* are the security.selinux xattrs which are less than 100 bytes and
|
||||||
* exist for every file when xattr labeling is enabled.
|
* exist for every file when xattr labeling is enabled.
|
||||||
*
|
*
|
||||||
* The Linux xattr implemenation has been written to take advantage of
|
* The Linux xattr implementation has been written to take advantage of
|
||||||
* this typical usage. When the dataset property 'xattr=sa' is set,
|
* this typical usage. When the dataset property 'xattr=sa' is set,
|
||||||
* then xattrs will be preferentially stored as System Attributes (SA).
|
* then xattrs will be preferentially stored as System Attributes (SA).
|
||||||
* This allows tiny xattrs (~100 bytes) to be stored with the dnode and
|
* This allows tiny xattrs (~100 bytes) to be stored with the dnode and
|
||||||
|
|
|
@ -1627,7 +1627,7 @@ zvol_create_minors_cb(const char *dsname, void *arg)
|
||||||
* - for each zvol, create a minor node, then check if the zvol's snapshots
|
* - for each zvol, create a minor node, then check if the zvol's snapshots
|
||||||
* are 'visible', and only then iterate over the snapshots if needed
|
* are 'visible', and only then iterate over the snapshots if needed
|
||||||
*
|
*
|
||||||
* If the name represents a snapshot, a check is perfromed if the snapshot is
|
* If the name represents a snapshot, a check is performed if the snapshot is
|
||||||
* 'visible' (which also verifies that the parent is a zvol), and if so,
|
* 'visible' (which also verifies that the parent is a zvol), and if so,
|
||||||
* a minor node for that snapshot is created.
|
* a minor node for that snapshot is created.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* ZPIOS is a heavily modified version of the original PIOS test code.
|
* ZPIOS is a heavily modified version of the original PIOS test code.
|
||||||
* It is designed to have the test code running in the Linux kernel
|
* It is designed to have the test code running in the Linux kernel
|
||||||
* against ZFS while still being flexibly controled from user space.
|
* against ZFS while still being flexibly controlled from user space.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
* Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
|
||||||
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
|
||||||
|
|
|
@ -567,8 +567,8 @@ udev_trigger() {
|
||||||
udev_setup() {
|
udev_setup() {
|
||||||
local SRC_PATH=$1
|
local SRC_PATH=$1
|
||||||
|
|
||||||
# When running in tree manually contruct symlinks in tree to
|
# When running in tree manually construct symlinks in tree to
|
||||||
# the proper devices. Symlinks are installed for all entires
|
# the proper devices. Symlinks are installed for all entries
|
||||||
# in the config file regardless of if that device actually
|
# in the config file regardless of if that device actually
|
||||||
# exists. When installed as a package udev can be relied on for
|
# exists. When installed as a package udev can be relied on for
|
||||||
# this and it will only create links for devices which exist.
|
# this and it will only create links for devices which exist.
|
||||||
|
|
|
@ -64,7 +64,7 @@ my $usage =
|
||||||
-C don't check anything in header block comments
|
-C don't check anything in header block comments
|
||||||
-P check for use of non-POSIX types
|
-P check for use of non-POSIX types
|
||||||
-o constructs
|
-o constructs
|
||||||
allow a comma-seperated list of optional constructs:
|
allow a comma-separated list of optional constructs:
|
||||||
doxygen allow doxygen-style block comments (/** /*!)
|
doxygen allow doxygen-style block comments (/** /*!)
|
||||||
splint allow splint-style lint comments (/*@ ... @*/)
|
splint allow splint-style lint comments (/*@ ... @*/)
|
||||||
";
|
";
|
||||||
|
|
|
@ -42,7 +42,7 @@ DESCRIPTION:
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-d Dry run
|
-d Dry run
|
||||||
-h Show this message
|
-h Show this message
|
||||||
-i Install the helper utilties
|
-i Install the helper utilities
|
||||||
-r Remove the helper utilities
|
-r Remove the helper utilities
|
||||||
-v Verbose
|
-v Verbose
|
||||||
|
|
||||||
|
|
|
@ -273,7 +273,7 @@ if [ ! -d $IMAGES_DIR ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Given the available images in the zfs-images directory substitute the
|
# Given the available images in the zfs-images directory substitute the
|
||||||
# list of available images for the reserved keywork 'all'.
|
# list of available images for the reserved keyword 'all'.
|
||||||
for TAG in $POOL_TAGS; do
|
for TAG in $POOL_TAGS; do
|
||||||
|
|
||||||
if [ "$TAG" = "all" ]; then
|
if [ "$TAG" = "all" ]; then
|
||||||
|
|
|
@ -91,7 +91,7 @@ check_pid() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# NOTE: This whole process is crazy slow but it will do for now
|
# NOTE: This whole process is crazy slow but it will do for now
|
||||||
aquire_pids() {
|
acquire_pids() {
|
||||||
echo "--- Aquiring ZFS pids ---"
|
echo "--- Aquiring ZFS pids ---"
|
||||||
|
|
||||||
for PID in `ls /proc/ | grep [0-9] | sort -n -u`; do
|
for PID in `ls /proc/ | grep [0-9] | sort -n -u`; do
|
||||||
|
@ -218,7 +218,7 @@ log_pids() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
aquire_pids
|
acquire_pids
|
||||||
log_pids
|
log_pids
|
||||||
|
|
||||||
# rm ${PROFILE_PID}
|
# rm ${PROFILE_PID}
|
||||||
|
|
|
@ -621,7 +621,7 @@ tests = ['vdev_zaps_001_pos', 'vdev_zaps_002_pos', 'vdev_zaps_003_pos',
|
||||||
[tests/functional/write_dirs]
|
[tests/functional/write_dirs]
|
||||||
tests = ['write_dirs_001_pos']
|
tests = ['write_dirs_001_pos']
|
||||||
|
|
||||||
# DISABLED: No 'runat' command, replace the Linux equivilant and add xattrtest
|
# DISABLED: No 'runat' command, replace the Linux equivalent and add xattrtest
|
||||||
#[tests/functional/xattr]
|
#[tests/functional/xattr]
|
||||||
#tests = ['xattr_001_pos', 'xattr_002_neg', 'xattr_003_neg', 'xattr_004_pos',
|
#tests = ['xattr_001_pos', 'xattr_002_neg', 'xattr_003_neg', 'xattr_004_pos',
|
||||||
# 'xattr_005_pos', 'xattr_006_pos', 'xattr_007_neg', 'xattr_008_pos',
|
# 'xattr_005_pos', 'xattr_006_pos', 'xattr_007_neg', 'xattr_008_pos',
|
||||||
|
|
|
@ -914,7 +914,7 @@ function partition_disk #<slice_size> <whole_disk_name> <total_slices>
|
||||||
# filenum: the maximum number of files per subdirectory
|
# filenum: the maximum number of files per subdirectory
|
||||||
# bytes: number of bytes to write
|
# bytes: number of bytes to write
|
||||||
# num_writes: numer of types to write out bytes
|
# num_writes: numer of types to write out bytes
|
||||||
# data: the data that will be writen
|
# data: the data that will be written
|
||||||
#
|
#
|
||||||
# E.g.
|
# E.g.
|
||||||
# file_fs /testdir 20 25 1024 256 0
|
# file_fs /testdir 20 25 1024 256 0
|
||||||
|
@ -1836,7 +1836,7 @@ function is_pool_scrub_stopped #pool
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Use create_pool()/destroy_pool() to clean up the infomation in
|
# Use create_pool()/destroy_pool() to clean up the information in
|
||||||
# in the given disk to avoid slice overlapping.
|
# in the given disk to avoid slice overlapping.
|
||||||
#
|
#
|
||||||
function cleanup_devices #vdevs
|
function cleanup_devices #vdevs
|
||||||
|
|
|
@ -237,7 +237,7 @@ function usr_exec #<commands> [...]
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Count how many ACEs for the speficied file or directory.
|
# Count how many ACEs for the specified file or directory.
|
||||||
#
|
#
|
||||||
# $1 file or directroy name
|
# $1 file or directroy name
|
||||||
#
|
#
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
# 1. create pools based on a valid vdev
|
# 1. create pools based on a valid vdev
|
||||||
# 2. create a filesytem on this pool and set the compression property to gzip1-9
|
# 2. create a filesystem on this pool and set the compression property to gzip1-9
|
||||||
# 3. set the pool's bootfs property to filesystem we just configured which
|
# 3. set the pool's bootfs property to filesystem we just configured which
|
||||||
# should fail
|
# should fail
|
||||||
#
|
#
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
# Check that we can create FS with any supported casesensitivity value.
|
# Check that we can create FS with any supported casesensitivity value.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
# For all suported casesensitivity values:
|
# For all supported casesensitivity values:
|
||||||
# 1. Create FS with given casesensitivity value.
|
# 1. Create FS with given casesensitivity value.
|
||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
# return an error.
|
# return an error.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
# 1. Create an array containg bad zdb parameters.
|
# 1. Create an array containing bad zdb parameters.
|
||||||
# 2. For each element, execute the sub-command.
|
# 2. For each element, execute the sub-command.
|
||||||
# 3. Verify it returns an error.
|
# 3. Verify it returns an error.
|
||||||
#
|
#
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
# DESCRIPTION:
|
# DESCRIPTION:
|
||||||
# 'zfs clone' should fail with inapplicable scenarios, including:
|
# 'zfs clone' should fail with inapplicable scenarios, including:
|
||||||
# * Null arguments
|
# * Null arguments
|
||||||
# * non-existant snapshots.
|
# * non-existent snapshots.
|
||||||
# * invalid characters in ZFS namesapec
|
# * invalid characters in ZFS namesapec
|
||||||
# * Leading slash in the target clone name
|
# * Leading slash in the target clone name
|
||||||
# * The argument contains an empty component.
|
# * The argument contains an empty component.
|
||||||
|
|
|
@ -146,7 +146,7 @@ typeset -i i
|
||||||
i=1
|
i=1
|
||||||
log_must setup_ds
|
log_must setup_ds
|
||||||
|
|
||||||
log_note "Verify zfs clone propery for multiple clones"
|
log_note "Verify zfs clone property for multiple clones"
|
||||||
names=$($ZFS list -rt all -o name $TESTPOOL)
|
names=$($ZFS list -rt all -o name $TESTPOOL)
|
||||||
log_must verify_clones 3 0
|
log_must verify_clones 3 0
|
||||||
|
|
||||||
|
|
|
@ -129,25 +129,25 @@ for clone in $child_fs1_snap_clone $child_fs1_snap_clone1; do
|
||||||
done
|
done
|
||||||
|
|
||||||
log_note "Verify that 'zfs destroy -r' fails to destroy dataset " \
|
log_note "Verify that 'zfs destroy -r' fails to destroy dataset " \
|
||||||
"with clone dependant outside it."
|
"with dependent clone outside it."
|
||||||
|
|
||||||
for obj in $child_fs $child_fs1 $ctr $ctr1; do
|
for obj in $child_fs $child_fs1 $ctr $ctr1; do
|
||||||
log_mustnot $ZFS destroy -r $obj
|
log_mustnot $ZFS destroy -r $obj
|
||||||
datasetexists $obj || \
|
datasetexists $obj || \
|
||||||
log_fail "'zfs destroy -r' fails to keep clone " \
|
log_fail "'zfs destroy -r' fails to keep dependent " \
|
||||||
"dependant outside the hirearchy."
|
"clone outside the hirearchy."
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
log_note "Verify that 'zfs destroy -R' succeeds to destroy dataset " \
|
log_note "Verify that 'zfs destroy -R' succeeds to destroy dataset " \
|
||||||
"with clone dependant outside it."
|
"with dependent clone outside it."
|
||||||
|
|
||||||
log_must $ZFS destroy -R $ctr1
|
log_must $ZFS destroy -R $ctr1
|
||||||
datasetexists $ctr1 && \
|
datasetexists $ctr1 && \
|
||||||
log_fail "'zfs destroy -R' fails to destroy dataset with clone outside it."
|
log_fail "'zfs destroy -R' fails to destroy dataset with clone outside it."
|
||||||
|
|
||||||
log_note "Verify that 'zfs destroy -r' succeeds to destroy dataset " \
|
log_note "Verify that 'zfs destroy -r' succeeds to destroy dataset " \
|
||||||
"without clone dependant outside it."
|
"without dependent clone outside it."
|
||||||
|
|
||||||
log_must $ZFS destroy -r $ctr
|
log_must $ZFS destroy -r $ctr
|
||||||
datasetexists $ctr && \
|
datasetexists $ctr && \
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
#
|
#
|
||||||
# DESCRIPTION:
|
# DESCRIPTION:
|
||||||
# Seperately verify 'zfs destroy -f|-r|-rf|-R|-rR <dataset>' will fail in
|
# Separately verify 'zfs destroy -f|-r|-rf|-R|-rR <dataset>' will fail in
|
||||||
# different conditions.
|
# different conditions.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
|
|
||||||
verify_runnable "both"
|
verify_runnable "both"
|
||||||
|
|
||||||
log_assert "Seperately verify 'zfs destroy -f|-r|-rf|-R|-rR <dataset>' will " \
|
log_assert "Separately verify 'zfs destroy -f|-r|-rf|-R|-rR <dataset>' will " \
|
||||||
"fail in different conditions."
|
"fail in different conditions."
|
||||||
log_onexit cleanup_testenv
|
log_onexit cleanup_testenv
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# When using 'zfs destroy -R' on a file system heirarchy that inclues a
|
# When using 'zfs destroy -R' on a file system hierarchy that includes a
|
||||||
# snapshot and a clone of that snapshot, and the snapshot has been
|
# snapshot and a clone of that snapshot, and the snapshot has been
|
||||||
# defer-destroyed, make sure that the 'zfs destroy -R' works as expected.
|
# defer-destroyed, make sure that the 'zfs destroy -R' works as expected.
|
||||||
# In particular make sure that libzfs is not confused by the fact that the
|
# In particular make sure that libzfs is not confused by the fact that the
|
||||||
|
|
|
@ -90,7 +90,7 @@ for args in $valid_args; do
|
||||||
verify_snapshots
|
verify_snapshots
|
||||||
done
|
done
|
||||||
|
|
||||||
log_note "Verify invalid arguements"
|
log_note "Verify invalid arguments"
|
||||||
setup_snapshots
|
setup_snapshots
|
||||||
for args in $invalid_args; do
|
for args in $invalid_args; do
|
||||||
log_mustnot $ZFS destroy $TESTPOOL/$TESTFS1$args
|
log_mustnot $ZFS destroy $TESTPOOL/$TESTFS1$args
|
||||||
|
@ -98,7 +98,7 @@ for args in $invalid_args; do
|
||||||
log_must verify_snapshots 1
|
log_must verify_snapshots 1
|
||||||
done
|
done
|
||||||
|
|
||||||
log_note "Destroy the begining range"
|
log_note "Destroy the beginning range"
|
||||||
|
|
||||||
log_must $ZFS destroy $TESTPOOL/$TESTFS1@%snap3
|
log_must $ZFS destroy $TESTPOOL/$TESTFS1@%snap3
|
||||||
log_must $ZFS destroy $TESTPOOL/$TESTVOL@%snap3
|
log_must $ZFS destroy $TESTPOOL/$TESTVOL@%snap3
|
||||||
|
|
|
@ -113,7 +113,7 @@ function cleanup_testenv
|
||||||
|
|
||||||
#
|
#
|
||||||
# Delete volume and related datasets from list, if the test cases was
|
# Delete volume and related datasets from list, if the test cases was
|
||||||
# runing in local zone. Then check them are existed or non-exists.
|
# running in local zone. Then check them are existed or non-exists.
|
||||||
#
|
#
|
||||||
# $1 function name
|
# $1 function name
|
||||||
# $2-n datasets name
|
# $2-n datasets name
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
# 1. Create a multiple depth filesystem.
|
# 1. Create a multiple depth filesystem.
|
||||||
# 2. 'zfs get -d <n>' to get the output.
|
# 2. 'zfs get -d <n>' to get the output.
|
||||||
# 3. 'zfs get -r|egrep' to get the expected output.
|
# 3. 'zfs get -r|egrep' to get the expected output.
|
||||||
# 4. Compare the two outputs, they shoud be same.
|
# 4. Compare the two outputs, they should be same.
|
||||||
#
|
#
|
||||||
|
|
||||||
verify_runnable "both"
|
verify_runnable "both"
|
||||||
|
|
|
@ -85,7 +85,7 @@ log_must $ZFS set mountpoint=$mntpnt1 $fs1
|
||||||
log_must $ZFS mount $fs1
|
log_must $ZFS mount $fs1
|
||||||
log_must $LS $testfile1 $mntpnt1/$TESTFILE2
|
log_must $LS $testfile1 $mntpnt1/$TESTFILE2
|
||||||
|
|
||||||
# Verify $TESTFILE2 was not created in $fs, and $fs is accessable again.
|
# Verify $TESTFILE2 was not created in $fs, and $fs is accessible again.
|
||||||
log_mustnot $LS $mntpnt/$TESTFILE2
|
log_mustnot $LS $mntpnt/$TESTFILE2
|
||||||
log_must $LS $testfile
|
log_must $LS $testfile
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
# 1. Create multiple snapshots and a clone to a middle point snapshot
|
# 1. Create multiple snapshots and a clone to a middle point snapshot
|
||||||
# 2. Promote the clone filesystem
|
# 2. Promote the clone filesystem
|
||||||
# 3. Verify the origin filesystem and promoted filesystem include
|
# 3. Verify the origin filesystem and promoted filesystem include
|
||||||
# correct datasets seperated by the clone point.
|
# correct datasets separated by the clone point.
|
||||||
#
|
#
|
||||||
|
|
||||||
verify_runnable "both"
|
verify_runnable "both"
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
#
|
#
|
||||||
# DESCRIPTION:
|
# DESCRIPTION:
|
||||||
# Seperately verify 'zfs rollback ''|-f|-r|-rf|-R|-rR will fail in
|
# Separately verify 'zfs rollback ''|-f|-r|-rf|-R|-rR will fail in
|
||||||
# different conditions.
|
# different conditions.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
|
@ -53,7 +53,7 @@ function cleanup
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "Seperately verify 'zfs rollback ''|-f|-r|-rf will fail in " \
|
log_assert "Separately verify 'zfs rollback ''|-f|-r|-rf will fail in " \
|
||||||
"different conditions."
|
"different conditions."
|
||||||
log_onexit cleanup
|
log_onexit cleanup
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ function cleanup_user_prop
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Random select charactor from the specified charactor set and combine into a
|
# Random select character from the specified character set and combine into a
|
||||||
# random string
|
# random string
|
||||||
#
|
#
|
||||||
# $1 character set name
|
# $1 character set name
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
# are not in the same pool.
|
# are not in the same pool.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
# 1. Create 2 separate zpools, zpool name lenghts must be the same.
|
# 1. Create 2 separate zpools, zpool name lengths must be the same.
|
||||||
# 2. Attempt to simultaneously create a snapshot of each pool.
|
# 2. Attempt to simultaneously create a snapshot of each pool.
|
||||||
# 3. Veriy the snapshot creation failed.
|
# 3. Veriy the snapshot creation failed.
|
||||||
#
|
#
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#
|
#
|
||||||
# STRATEGY
|
# STRATEGY
|
||||||
# 1. Create multiple datasets
|
# 1. Create multiple datasets
|
||||||
# 2. Create mutiple snapshots with a list of valid and invalid
|
# 2. Create multiple snapshots with a list of valid and invalid
|
||||||
# snapshot names
|
# snapshot names
|
||||||
# 3. Verify the valid snpashot creation
|
# 3. Verify the valid snpashot creation
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
#
|
#
|
||||||
# DESCRIPTION:
|
# DESCRIPTION:
|
||||||
# Verify that a file system and its dependant are unshared when turn off sharenfs
|
# Verify that a file system and its dependent are unshared when turn off sharenfs
|
||||||
# property.
|
# property.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
|
@ -81,10 +81,10 @@ function test_snap_unshare # <mntp> <filesystem>
|
||||||
log_fail "Snapshot $mntpt@snapshot is shared (set sharenfs)."
|
log_fail "Snapshot $mntpt@snapshot is shared (set sharenfs)."
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "Verify that a file system and its dependant are unshared."
|
log_assert "Verify that a file system and its dependent are unshared."
|
||||||
log_onexit cleanup
|
log_onexit cleanup
|
||||||
|
|
||||||
log_must $ZFS snapshot $TESTPOOL/$TESTFS@snapshot
|
log_must $ZFS snapshot $TESTPOOL/$TESTFS@snapshot
|
||||||
test_snap_unshare $TESTDIR $TESTPOOL/$TESTFS
|
test_snap_unshare $TESTDIR $TESTPOOL/$TESTFS
|
||||||
|
|
||||||
log_pass "A file system and its dependant are both unshared as expected."
|
log_pass "A file system and its dependent are both unshared as expected."
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
# should run successfully.
|
# should run successfully.
|
||||||
#
|
#
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
# 1. Create an array containg each zpool options.
|
# 1. Create an array containing each zpool options.
|
||||||
# 2. For each element, execute the zpool command.
|
# 2. For each element, execute the zpool command.
|
||||||
# 3. Verify it run successfully.
|
# 3. Verify it run successfully.
|
||||||
#
|
#
|
||||||
|
|
|
@ -45,7 +45,7 @@ fi
|
||||||
|
|
||||||
if [[ -n $DISK ]]; then
|
if [[ -n $DISK ]]; then
|
||||||
#
|
#
|
||||||
# Use 'zpool create' to clean up the infomation in
|
# Use 'zpool create' to clean up the information in
|
||||||
# in the given disk to avoid slice overlapping.
|
# in the given disk to avoid slice overlapping.
|
||||||
#
|
#
|
||||||
cleanup_devices $DISK
|
cleanup_devices $DISK
|
||||||
|
|
|
@ -47,7 +47,7 @@ fi
|
||||||
|
|
||||||
if [[ -n $DISK ]]; then
|
if [[ -n $DISK ]]; then
|
||||||
#
|
#
|
||||||
# Use 'zpool create' to clean up the infomation in
|
# Use 'zpool create' to clean up the information in
|
||||||
# in the given disk to avoid slice overlapping.
|
# in the given disk to avoid slice overlapping.
|
||||||
#
|
#
|
||||||
cleanup_devices $DISK
|
cleanup_devices $DISK
|
||||||
|
|
|
@ -100,7 +100,7 @@ log_assert "Verify all mount & share status of sub-filesystems within a pool \
|
||||||
can be restored after import [-Df]."
|
can be restored after import [-Df]."
|
||||||
|
|
||||||
setup_filesystem "$DEVICE_FILES" $TESTPOOL1 $TESTFS $TESTDIR1
|
setup_filesystem "$DEVICE_FILES" $TESTPOOL1 $TESTFS $TESTDIR1
|
||||||
# create a heirarchy of filesystem
|
# create a hierarchy of filesystem
|
||||||
for pool in ${pools[@]} ; do
|
for pool in ${pools[@]} ; do
|
||||||
log_must $ZFS create $pool/$TESTFS/$TESTCTR
|
log_must $ZFS create $pool/$TESTFS/$TESTCTR
|
||||||
log_must $ZFS create $pool/$TESTFS/$TESTCTR/$TESTCTR1
|
log_must $ZFS create $pool/$TESTFS/$TESTCTR/$TESTCTR1
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
# STRATEGY:
|
# STRATEGY:
|
||||||
# 1. 'zfs list -d <n>' to get the output.
|
# 1. 'zfs list -d <n>' to get the output.
|
||||||
# 2. 'zfs list -r|egrep' to get the expected output.
|
# 2. 'zfs list -r|egrep' to get the expected output.
|
||||||
# 3. Compare the two outputs, they shoud be same.
|
# 3. Compare the two outputs, they should be same.
|
||||||
#
|
#
|
||||||
|
|
||||||
verify_runnable "both"
|
verify_runnable "both"
|
||||||
|
|
|
@ -50,7 +50,7 @@ function cleanup
|
||||||
$RM -f $TESTDIR/*
|
$RM -f $TESTDIR/*
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "Changing blocksize doesn't casue system panic with compression settings"
|
log_assert "Changing blocksize doesn't cause system panic with compression settings"
|
||||||
log_onexit cleanup
|
log_onexit cleanup
|
||||||
|
|
||||||
fs=$TESTPOOL/$TESTFS
|
fs=$TESTPOOL/$TESTFS
|
||||||
|
|
|
@ -60,8 +60,8 @@ if is_linux; then
|
||||||
# - rename - mount(8) does not permit non-superuser mounts
|
# - rename - mount(8) does not permit non-superuser mounts
|
||||||
# - zoned - zones are not supported
|
# - zoned - zones are not supported
|
||||||
# - destroy - umount(8) does not permit non-superuser umounts
|
# - destroy - umount(8) does not permit non-superuser umounts
|
||||||
# - sharenfs - sharing requires superuser priviliges
|
# - sharenfs - sharing requires superuser privileges
|
||||||
# - share - sharing requires superuser priviliges
|
# - share - sharing requires superuser privileges
|
||||||
# - readonly - mount(8) does not permit non-superuser remounts
|
# - readonly - mount(8) does not permit non-superuser remounts
|
||||||
#
|
#
|
||||||
set -A perms create true false \
|
set -A perms create true false \
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
|
|
||||||
#
|
#
|
||||||
# Create block file or charactor file according to parameter.
|
# Create block file or character file according to parameter.
|
||||||
#
|
#
|
||||||
# $1 device file type
|
# $1 device file type
|
||||||
# $2 file name
|
# $2 file name
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue