diff options
author | Turbo Fredriksson <[email protected]> | 2015-09-22 09:56:28 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2015-09-29 11:42:24 -0700 |
commit | 57732964d35616d6c93b8377b1ed72c485d9d73d (patch) | |
tree | db0d1ab021f7972f451dab29e714a8a797c899cc /etc/init.d/zfs-mount.in | |
parent | 45838e3a414a7a1a5fb49dc528dee1d22449599b (diff) |
Init script fixes
* Fix regression - "OVERLAY_MOUNTS" should have been "DO_OVERLAY_MOUNTS".
* Fix update-rc.d commands in postinst. Thanx to subzero79@GitHub.
* Fix make sure a filesystem exists before trying to mount in mount_fs()
* Fix local variable usage.
* Fix to read_mtab():
* Strip control characters (space - \040) from /proc/mounts GLOBALY,
not just first occurrence.
* Don't replace unprintable characters ([/-. ]) for use in the variable
name with underscore. No need, just remove them all together.
* Add check_boolean() to check if a user configure option is
set ('yes', 'Yes', 'YES' or any combination there of) OR '1'.
Anything else is considered 'unset'.
* Add a ZFS_POOL_IMPORT to the default config.
* This is a semi colon separated list of pools to import ONLY.
* This is intended for systems which have _a lot_ of pools (from
a SAN for example) and it would be to many to put in the
ZFS_POOL_EXCEPTIONS variable..
* Add a config option "ZPOOL_IMPORT_OPTS" for adding additional options
to "zpool import".
* Add documentation and the chance of overriding the ZPOOL_CACHE
variable in the config file.
* Remove "sort" from find_pools() and setup_snapshot_booting().
Sometimes not available, and not really necessary.
Signed-off-by: Turbo Fredriksson <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Signed-off-by: Ned Bass <[email protected]>
Issue #3816
Diffstat (limited to 'etc/init.d/zfs-mount.in')
-rwxr-xr-x | etc/init.d/zfs-mount.in | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/etc/init.d/zfs-mount.in b/etc/init.d/zfs-mount.in index 95aefd6d6..05cea9b88 100755 --- a/etc/init.d/zfs-mount.in +++ b/etc/init.d/zfs-mount.in @@ -67,8 +67,8 @@ do_mount() { local verbose overlay i mntpt val - [ "$VERBOSE_MOUNT" = 'yes' ] && verbose=v - [ "$OVERLAY_MOUNTS" = 'yes' ] && overlay=O + check_boolean "$VERBOSE_MOUNT" && verbose=v + check_boolean "$DO_OVERLAY_MOUNTS" && overlay=O zfs_action "Mounting ZFS filesystem(s)" \ "$ZFS" mount -a$verbose$overlay "$MOUNT_EXTRA_OPTIONS" @@ -78,7 +78,7 @@ do_mount() # can get zfs-import to run sufficiently early on in the boot # process - before local mounts. This is just here in case/if # this isn't possible. - [ "$VERBOSE_MOUNT" = 'yes' ] && \ + check_boolean "$VERBOSE_MOUNT" && \ zfs_log_begin_msg "Mounting volumes and filesystems registered in fstab" read_mtab "^/dev/(zd|zvol)" @@ -90,7 +90,7 @@ do_mount() dev=$(eval echo "$"FSTAB_dev_$i) if ! in_mtab "$mntpt" && ! is_mounted "$mntpt" && [ -e "$dev" ] then - [ "$VERBOSE_MOUNT" = 'yes' ] && \ + check_boolean "$VERBOSE_MOUNT" && \ zfs_log_progress_msg "$mntpt " fsck "$dev" && mount "$mntpt" fi @@ -107,7 +107,7 @@ do_mount() mntpt=$(eval echo "$""$var") if ! in_mtab "$mntpt" && ! is_mounted "$mntpt" then - [ "$VERBOSE_MOUNT" = 'yes' ] && \ + check_boolean "$VERBOSE_MOUNT" && \ zfs_log_progress_msg "$mntpt " mount "$mntpt" fi @@ -115,7 +115,7 @@ do_mount() i=$((i + 1)) var=$(eval echo FSTAB_$i) done - [ "$VERBOSE_MOUNT" = 'yes' ] && zfs_log_end_msg 0 + check_boolean "$VERBOSE_MOUNT" && zfs_log_end_msg 0 return 0 } @@ -131,7 +131,7 @@ do_unmount() # this isn't possible. zfs_action "Unmounting ZFS filesystems" "$ZFS" unmount -a - [ "$VERBOSE_MOUNT" = 'yes' ] && \ + check_boolean "$VERBOSE_MOUNT" && \ zfs_log_begin_msg "Unmounting volumes and filesystems registered in fstab" read_mtab "^/dev/(zd|zvol)" @@ -143,7 +143,7 @@ do_unmount() dev=$(eval echo "$"FSTAB_dev_$i) if in_mtab "$mntpt" then - [ "$VERBOSE_MOUNT" = 'yes' ] && \ + check_boolean "$VERBOSE_MOUNT" && \ zfs_log_progress_msg "$mntpt " umount "$mntpt" fi @@ -159,7 +159,7 @@ do_unmount() do mntpt=$(eval echo "$""$var") if in_mtab "$mntpt"; then - [ "$VERBOSE_MOUNT" = 'yes' ] && \ + check_boolean "$VERBOSE_MOUNT" && \ zfs_log_progress_msg "$mntpt " umount "$mntpt" fi @@ -167,20 +167,16 @@ do_unmount() i=$((i + 1)) var=$(eval echo FSTAB_$i) done - [ "$VERBOSE_MOUNT" = 'yes' ] && zfs_log_end_msg 0 + check_boolean "$VERBOSE_MOUNT" && zfs_log_end_msg 0 return 0 } do_start() { - check_module_loaded "zfs" || exit 0 + check_boolean "$ZFS_MOUNT" || exit 0 - case "$ZFS_MOUNT" in - [Oo][Ff][Ff]|[Nn][Oo]|''|0) - exit 3 - ;; - esac + check_module_loaded "zfs" || exit 0 # Ensure / exists in /etc/mtab, if not update mtab accordingly. # This should be handled by rc.sysinit but lets be paranoid. @@ -194,11 +190,7 @@ do_start() do_stop() { - case "$ZFS_UNMOUNT" in - [Oo][Ff][Ff]|[Nn][Oo]|''|0) - exit 0 - ;; - esac + check_boolean "$ZFS_UNMOUNT" || exit 0 check_module_loaded "zfs" || exit 0 |