Change-Id: I28685c64435343bc48c938cb422ad06373de01f6
 }
 trap cleanup_and_exit INT
 
-fatal() {
+fatal_and_exit() {
   # echo message to terminal
   echo -e 2>&1 "$1"
   # send email notification
-  echo -e "$1" | $mailx -s "zfs-replicate-all on $hostname failed" "$mailto"
-}
-
-fatal_and_exit() {
-  fatal $*
-  exit 1
+  echo -e "$1" | $mailx -s "zfs-replicate-all on $hostname failed" "$2"
+  # exit with bad return code unless 3rd argument was defined that says not to
+  if [[ -z "$3" ]]; then
+    exit 1
+  fi
 }
 
 # This function executes the replicate command and checks the stoptime
     zpool export $backup_pool
     if [ $? != 0 ]; then
       lsof /$backup_pool/*
-      fatal "-E- unable to export the local backup pool $backup_pool on $hostname" "$mailto"
+      fatal_and_exit "-E- unable to export the local backup pool $backup_pool on $hostname" "$mailto" 0
     fi
   fi
 fi