From 829fe014a5cdc1db1b6dba21ee03d5606a6e79f5 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Fri, 8 Oct 2010 12:35:56 +0000 Subject: [PATCH] Fix a serious bug in the behavior of fasdm tool when breaked. Under certain conditions it was possible to break (^C) fsadm before actually resizing filesystem, but lvresize which executed fsadm will think resize was succesful and shrinks partitions with unresized filesystem on it. Fix by returning error (1) for this case - this stops lvresize from futher proceding in resize operation. --- WHATS_NEW | 1 + scripts/fsadm.sh | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index 9198056b9..4547a0a1b 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.75 - ===================================== + Fix fsadm return error code from user's break action. Allow CC to be overridden at build time (for 'scan-build make'). Rename 'flags' to 'status' in struct metadata_area. Avoid segfault by limiting partial mode for lvm1 metadata. (2.02.74) diff --git a/scripts/fsadm.sh b/scripts/fsadm.sh index 517b3950d..50720b1d0 100644 --- a/scripts/fsadm.sh +++ b/scripts/fsadm.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2007-2009 Red Hat, Inc. All rights reserved. +# Copyright (C) 2007-2010 Red Hat, Inc. All rights reserved. # # This file is part of LVM2. # @@ -129,7 +129,8 @@ cleanup() { # and allow recursive call of fsadm unset FSADM_RUNNING test "$DO_LVRESIZE" -eq 2 && exec $LVM lvresize $VERB -r -L$(( $NEWSIZE / 1048576 )) $VOLUME - exit ${1:-0} + # error exit status for break + exit ${1:-1} } # convert parameter from Exa/Peta/Tera/Giga/Mega/Kilo/Bytes and blocks