diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2020-10-25 20:19:31 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2020-10-26 13:06:52 +0100 |
commit | b0333841352b76ce13464b82cb1876ea82b80351 (patch) | |
tree | 02bdda9ffa0a00c775cc8a226fdb0f32cc8f7e07 | |
parent | 2183af62e56ff68e77eb29c7da9fcf2445b30eba (diff) | |
download | lvm2-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.
-rwxr-xr-x | scripts/fsadm.sh | 13 |
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 } |