diff options
author | TerraTech <[email protected]> | 2018-12-04 09:57:29 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-12-04 09:57:29 -0800 |
commit | a0cc3726ed0b14ce43b0cfd4af4b703536a587c6 (patch) | |
tree | fa8f87304aae8b77cdb116c85f198d34cd0fa91c /etc/init.d | |
parent | fedef6dd592cf6e83ab8fc8b81e5407d64f79996 (diff) |
zfs-functions.in: is_mounted() always returns 1
The 'while read line; ...; done' loop is run in a piped subshell
therefore the 'return 0' would not cause a return from the
is_mounted() function. In all cases, this function will
always return 1.
The fix is to 'return 1' from the subshell on a successful match
(no match == return 0), and then negating the final return value.
Reviewed-by: George Melikov <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: TerraTech <[email protected]>
Closes #8151
Diffstat (limited to 'etc/init.d')
-rw-r--r-- | etc/init.d/zfs-functions.in | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/etc/init.d/zfs-functions.in b/etc/init.d/zfs-functions.in index f5b74d458..490503e91 100644 --- a/etc/init.d/zfs-functions.in +++ b/etc/init.d/zfs-functions.in @@ -423,9 +423,14 @@ is_mounted() mount | \ while read line; do if echo "$line" | grep -q " on $mntpt "; then - return 0 + # returns: + # 0 on unsuccessful match + # 1 on a successful match + return 1 fi done - return 1 + # The negation will flip the subshell return result where the default + # return value is 0 when a match is not found. + return $(( !$? )) } |