summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2020-10-25 20:19:31 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2020-10-26 13:06:52 +0100
commitb0333841352b76ce13464b82cb1876ea82b80351 (patch)
tree02bdda9ffa0a00c775cc8a226fdb0f32cc8f7e07 /scripts
parent2183af62e56ff68e77eb29c7da9fcf2445b30eba (diff)
downloadlvm2-b0333841352b76ce13464b82cb1876ea82b80351.tar.gz
fsadm: better check for getsize64 support
Older blockdev tool return failure error code with --help, and since now the tool abort on command failure, lets detect missing --getsize64 support directly by running command and check if it returns something usable. It's likely very hard to have the system with such old blockdev tool and newer lvm2 compiled.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/fsadm.sh13
1 files changed, 5 insertions, 8 deletions
diff --git a/scripts/fsadm.sh b/scripts/fsadm.sh
index 5bba5ff40..9b95d318d 100755
--- a/scripts/fsadm.sh
+++ b/scripts/fsadm.sh
@@ -377,16 +377,13 @@ detect_mounted() {
# get the full size of device in bytes
detect_device_size() {
# check if blockdev supports getsize64
- "$BLOCKDEV" --help 2>&1 | "$GREP" getsize64 >"$NULL"
- if test $? -eq 0; then
- DEVSIZE=$("$BLOCKDEV" --getsize64 "$VOLUME")
+ DEVSIZE=$("$BLOCKDEV" --getsize64 "$VOLUME" 2>"$NULL" || true)
+ if test -n "$DEVSIZE" ; then
+ DEVSIZE=$("$BLOCKDEV" --getsize "$VOLUME" || true)
test -n "$DEVSIZE" || error "Cannot read size of device \"$VOLUME\"."
- else
- DEVSIZE=$("$BLOCKDEV" --getsize "$VOLUME")
- test -n "$DEVSIZE" || error "Cannot read size of device \"$VOLUME\"."
- SSSIZE=$("$BLOCKDEV" --getss "$VOLUME")
+ SSSIZE=$("$BLOCKDEV" --getss "$VOLUME" || true)
test -n "$SSSIZE" || error "Cannot read sector size of device \"$VOLUME\"."
- DEVSIZE=$(("$DEVSIZE" * "$SSSIZE"))
+ DEVSIZE=$(( $DEVSIZE * $SSSIZE ))
fi
}