diff options
Diffstat (limited to 'sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch')
-rw-r--r-- | sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch b/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch deleted file mode 100644 index fec87d0123f3..000000000000 --- a/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch +++ /dev/null @@ -1,256 +0,0 @@ -commit 3cb750b249717b43cbfcde78b44b0e38a2a61dc2 -Author: James Lee <jlee@thestaticvoid.com> -Date: Sat Sep 19 22:00:36 2015 -0400 - - zfs-import: Perform verbatim import using cache file - - This change modifies the import service to use the default cache file - to perform a verbatim import of pools at boot. This fixes code that - searches all devices and imported all visible pools. - - Using the cache file is in keeping with the way ZFS has always worked, - how Solaris, Illumos, FreeBSD, and systemd performs imports, and is how - it is written in the man page (zpool(1M,8)): - - All pools in this cache are automatically imported when the - system boots. - - Importantly, the cache contains important information for importing - multipath devices, and helps control which pools get imported in more - dynamic environments like SANs, which may have thousands of visible - and constantly changing pools, which the ZFS_POOL_EXCEPTIONS variable - is not equipped to handle. Verbatim imports prevent rogue pools from - being automatically imported and mounted where they shouldn't be. - - The change also stops the service from exporting pools at shutdown. - Exporting pools is only meant to be performed explicitly by the - administrator of the system. - - The old behavior of searching and importing all visible pools is - preserved and can be switched on by heeding the warning and toggling - the ZPOOL_IMPORT_ALL_VISIBLE variable in /etc/default/zfs. - - Closes #3777 - Closes #3526 - -diff --git a/etc/init.d/zfs-import.in b/etc/init.d/zfs-import.in -index 5e21929..2258638 100755 ---- a/etc/init.d/zfs-import.in -+++ b/etc/init.d/zfs-import.in -@@ -1,11 +1,10 @@ - #!@SHELL@ - # --# zfs-import This script will import/export zfs pools. -+# zfs-import This script will import ZFS pools - # - # chkconfig: 2345 01 99 --# description: This script will import/export zfs pools during system --# boot/shutdown. --# It is also responsible for all userspace zfs services. -+# description: This script will perform a verbatim import of ZFS pools -+# during system boot. - # probe: true - # - ### BEGIN INIT INFO -@@ -17,7 +16,7 @@ - # X-Start-Before: checkfs - # X-Stop-After: zfs-mount - # Short-Description: Import ZFS pools --# Description: Run the `zpool import` or `zpool export` commands. -+# Description: Run the `zpool import` command. - ### END INIT INFO - # - # NOTE: Not having '$local_fs' on Required-Start but only on Required-Stop -@@ -43,6 +42,16 @@ do_depend() - keyword -lxc -openvz -prefix -vserver - } - -+# Use the zpool cache file to import pools -+do_verbatim_import() -+{ -+ if [ -f "$ZPOOL_CACHE" ] -+ then -+ zfs_action "Importing ZFS pool(s)" \ -+ "$ZPOOL" import -c "$ZPOOL_CACHE" -N -a -+ fi -+} -+ - # Support function to get a list of all pools, separated with ';' - find_pools() - { -@@ -60,8 +69,8 @@ find_pools() - echo "${pools%%;}" # Return without the last ';'. - } - --# Import all pools --do_import() -+# Find and import all visible pools, even exported ones -+do_import_all_visible() - { - local already_imported available_pools pool npools - local exception dir ZPOOL_IMPORT_PATH RET=0 r=1 -@@ -109,7 +118,7 @@ do_import() - fi - fi - -- # Filter out any exceptions... -+ # Filter out any exceptions... - if [ -n "$ZFS_POOL_EXCEPTIONS" ] - then - local found="" -@@ -249,41 +258,15 @@ do_import() - return "$RET" - } - --# Export all pools --do_export() -+do_import() - { -- local already_imported pool root_pool RET r -- RET=0 -- -- root_pool=$(get_root_pool) -- -- [ -n "$init" ] && zfs_log_begin_msg "Exporting ZFS pool(s)" -- -- # Find list of already imported pools. -- already_imported=$(find_pools "$ZPOOL" list -H -oname) -- -- OLD_IFS="$IFS" ; IFS=";" -- for pool in $already_imported; do -- [ "$pool" = "$root_pool" ] && continue -- -- if [ -z "$init" ] -- then -- # Interactive - one 'Importing ...' line per pool -- zfs_log_begin_msg "Exporting ZFS pool $pool" -- else -- # Not interactive - a dot for each pool. -- zfs_log_progress_msg "." -- fi -- -- "$ZPOOL" export "$pool" -- r="$?" ; RET=$((RET + r)) -- [ -z "$init" ] && zfs_log_end_msg "$r" -- done -- IFS="$OLD_IFS" -- -- [ -n "$init" ] && zfs_log_end_msg "$RET" -- -- return "$RET" -+ if check_boolean "$ZPOOL_IMPORT_ALL_VISIBLE" -+ then -+ do_import_all_visible -+ else -+ # This is the default option -+ do_verbatim_import -+ fi - } - - # Output the status and list of pools -@@ -323,14 +306,6 @@ do_start() - fi - } - --do_stop() --{ -- # Check to see if the module is even loaded. -- check_module_loaded "zfs" || exit 0 -- -- do_export --} -- - # ---------------------------------------------------- - - if [ ! -e /etc/gentoo-release ] -@@ -340,7 +315,7 @@ then - do_start - ;; - stop) -- do_stop -+ # no-op - ;; - status) - do_status -@@ -350,7 +325,7 @@ then - ;; - *) - [ -n "$1" ] && echo "Error: Unknown command $1." -- echo "Usage: $0 {start|stop|status}" -+ echo "Usage: $0 {start|status}" - exit 3 - ;; - esac -@@ -360,6 +335,5 @@ else - # Create wrapper functions since Gentoo don't use the case part. - depend() { do_depend; } - start() { do_start; } -- stop() { do_stop; } - status() { do_status; } - fi -diff --git a/etc/init.d/zfs.in b/etc/init.d/zfs.in -index eabb7e4..d81ef22 100644 ---- a/etc/init.d/zfs.in -+++ b/etc/init.d/zfs.in -@@ -16,6 +16,24 @@ ZFS_SHARE='yes' - # Run `zfs unshare -a` during system stop? - ZFS_UNSHARE='yes' - -+# By default, a verbatim import of all pools is performed at boot based on the -+# contents of the default zpool cache file. The contents of the cache are -+# managed automatically by the 'zpool import' and 'zpool export' commands. -+# -+# By setting this to 'yes', the system will instead search all devices for -+# pools and attempt to import them all at boot, even those that have been -+# exported. Under this mode, the search path can be controlled by the -+# ZPOOL_IMPORT_PATH variable and a list of pools that should not be imported -+# can be listed in the ZFS_POOL_EXCEPTIONS variable. -+# -+# Note that importing all visible pools may include pools that you don't -+# expect, such as those on removable devices and SANs, and those pools may -+# proceed to mount themselves in places you do not want them to. The results -+# can be unpredictable and possibly dangerous. Only enable this option if you -+# understand this risk and have complete physical control over your system and -+# SAN to prevent the insertion of malicious pools. -+ZPOOL_IMPORT_ALL_VISIBLE='no' -+ - # Specify specific path(s) to look for device nodes and/or links for the - # pool import(s). See zpool(8) for more information about this variable. - # It supersedes the old USE_DISK_BY_ID which indicated that it would only -@@ -23,6 +41,18 @@ ZFS_UNSHARE='yes' - # The old variable will still work in the code, but is deprecated. - #ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id" - -+# List of pools that should NOT be imported at boot -+# when ZPOOL_IMPORT_ALL_VISIBLE is 'yes'. -+# This is a space separated list. -+#ZFS_POOL_EXCEPTIONS="test2" -+ -+# List of pools that SHOULD be imported at boot by the initramfs -+# instead of trying to import all available pools. If this is set -+# then ZFS_POOL_EXCEPTIONS is ignored. -+# Only applicable for Debian GNU/Linux {dkms,initramfs}. -+# This is a semi-colon separated list. -+#ZFS_POOL_IMPORT="pool1;pool2" -+ - # Should the datasets be mounted verbosely? - # A mount counter will be used when mounting if set to 'yes'. - VERBOSE_MOUNT='no' -@@ -97,17 +127,6 @@ ZFS_INITRD_POST_MODPROBE_SLEEP='0' - # Example: If root FS is 'rpool/ROOT/rootfs', this would make sense. - #ZFS_INITRD_ADDITIONAL_DATASETS="rpool/ROOT/usr rpool/ROOT/var" - --# List of pools that should NOT be imported at boot? --# This is a space separated list. --#ZFS_POOL_EXCEPTIONS="test2" -- --# List of pools to import? --# If this variable is set, there will be NO auto-import of ANY other --# pool. In essence, there will be no auto detection of availible pools. --# This is a semi-colon separated list. --# Makes the variable ZFS_POOL_EXCEPTIONS above redundant (won't be checked). --#ZFS_POOL_IMPORT="pool1;pool2" -- - # Optional arguments for the ZFS Event Daemon (ZED). - # See zed(8) for more information on available options. - #ZED_ARGS="-M" |