commit 14cba81f6e97d1a1fa8ffcf2d34fc96d13d79d63
parent db976a521029c5991d8316f6d0572e5d6e9b482e
Author: Jaromil <jaromil@dyne.org>
Date: Mon, 26 Dec 2016 20:40:23 +0100
fix is_valid_tomb check for already mounted tombs
also added some more verbosity on debug
Diffstat:
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/tomb b/tomb
@@ -507,20 +507,27 @@ is_valid_tomb() {
_warning "Tomb file is not writable: ::1 tomb file::" $1
_fail=1
}
+ _verbose "tomb file is readable"
+
[[ ! -f "$1" ]] && {
_warning "Tomb file is not a regular file: ::1 tomb file::" $1
_fail=1
}
+ _verbose "tomb file is a regular file"
+
[[ ! -s "$1" ]] && {
_warning "Tomb file is empty (zero length): ::1 tomb file::" $1
_fail=1
}
+ _verbose "tomb file is not empty"
_uid="`zstat +uid $1`"
[[ "$_uid" = "$UID" ]] || {
_user="`zstat -s +uid $1`"
_warning "Tomb file is owned by another user: ::1 tomb owner::" $_user
}
+ _verbose "tomb is not owned by another user"
+
[[ $_fail = 1 ]] && {
_failure "Tomb command failed: ::1 command name::" $subcommand
}
@@ -536,9 +543,12 @@ is_valid_tomb() {
_plot $1 # Set TOMB{PATH,DIR,FILE,NAME}
# Tomb already mounted (or we cannot alter it)
- [[ "`mount -l`" -regex-match "${TOMBFILE}.*\[$TOMBNAME\]$" ]] && {
+ [[ "`mount -l |
+ awk -vtomb="[$TOMBNAME]" '
+/^\/dev\/mapper\/tomb/ { if($7==tomb) print $1 }'`" = "" ]] || {
_failure "Tomb is currently in use: ::1 tomb name::" $TOMBNAME
}
+ _verbose "tomb file is not currently in use"
_message "Valid tomb file found: ::1 tomb path::" $TOMBPATH