mrc0mmand / rpms / lvm2

Forked from rpms/lvm2 2 years ago
Clone

Blame SOURCES/lvm2-2_02_188-fsadm-handle-fsck-return-1-for-corrected-fs.patch

e1e9d4
From 3a10489b8c2c7438d4725bfa272fa04927f91ebd Mon Sep 17 00:00:00 2001
e1e9d4
From: Zdenek Kabelac <zkabelac@redhat.com>
e1e9d4
Date: Sat, 24 Oct 2020 00:42:31 +0200
e1e9d4
Subject: [PATCH 1/2] fsadm: handle fsck return 1 for corrected fs
e1e9d4
e1e9d4
(cherry picked from commit ab99382d7a614c299e765ea4d1f02fe7282502a1)
e1e9d4
---
e1e9d4
 scripts/fsadm.sh | 25 ++++++++++++++++++-------
e1e9d4
 1 file changed, 18 insertions(+), 7 deletions(-)
e1e9d4
e1e9d4
diff --git a/scripts/fsadm.sh b/scripts/fsadm.sh
e1e9d4
index 28ca670..c4c7515 100755
e1e9d4
--- a/scripts/fsadm.sh
e1e9d4
+++ b/scripts/fsadm.sh
e1e9d4
@@ -1,6 +1,6 @@
e1e9d4
 #!/bin/bash
e1e9d4
 #
e1e9d4
-# Copyright (C) 2007-2017 Red Hat, Inc. All rights reserved.
e1e9d4
+# Copyright (C) 2007-2020 Red Hat, Inc. All rights reserved.
e1e9d4
 #
e1e9d4
 # This file is part of LVM2.
e1e9d4
 #
e1e9d4
@@ -130,7 +130,15 @@ dry() {
e1e9d4
 		return 0
e1e9d4
 	fi
e1e9d4
 	verbose "Executing" "$@"
e1e9d4
-	"$@"
e1e9d4
+	$@
e1e9d4
+}
e1e9d4
+
e1e9d4
+# Accept as succss also return code 1 with fsck
e1e9d4
+accept_0_1() {
e1e9d4
+	$@
e1e9d4
+	local ret="$?"
e1e9d4
+	test "$ret" -eq 1 || return "$ret"
e1e9d4
+	# Filesystem was corrected
e1e9d4
 }
e1e9d4
 
e1e9d4
 cleanup() {
e1e9d4
@@ -455,9 +463,10 @@ resize_ext() {
e1e9d4
 		if test -n "$MOUNTED" ; then
e1e9d4
 			# Forced fsck -f for umounted extX filesystem.
e1e9d4
 			case "$-" in
e1e9d4
-			  *i*) dry "$FSCK" $YES -f "$VOLUME" ;;
e1e9d4
-			  *) dry "$FSCK" -f -p "$VOLUME" ;;
e1e9d4
+			*i*) FLAG=$YES ;;
e1e9d4
+			*)   FLAG="-p" ;;
e1e9d4
 			esac
e1e9d4
+			accept_0_1 dry "$FSCK" -f $FLAG "$VOLUME" || error "Failed to fsck $VOLUME"
e1e9d4
 		fi
e1e9d4
 	fi
e1e9d4
 
e1e9d4
@@ -742,9 +751,11 @@ check() {
e1e9d4
 	  "ext2"|"ext3"|"ext4"|"reiserfs")
e1e9d4
 	        # check if executed from interactive shell environment
e1e9d4
 		case "$-" in
e1e9d4
-		  *i*) dry "$FSCK" $YES $FORCE "$VOLUME" ;;
e1e9d4
-		  *) dry "$FSCK" $FORCE -p "$VOLUME" ;;
e1e9d4
-		esac ;;
e1e9d4
+		  *i*) FLAG=$YES ;;
e1e9d4
+		  *)   FLAG="-p" ;;
e1e9d4
+		esac
e1e9d4
+		accept_0_1 dry "$FSCK" $FORCE $FLAG "$VOLUME" || error "Fsck $FSTYPE failed."
e1e9d4
+		;;
e1e9d4
 	  "crypto_LUKS")
e1e9d4
 		which "$CRYPTSETUP" > /dev/null 2>&1 || error "$CRYPTSETUP utility required."
e1e9d4
 		check_luks ;;
e1e9d4
-- 
e1e9d4
1.8.3.1
e1e9d4