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 /scripts | |
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.
Diffstat (limited to 'scripts')
-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 } |