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