mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
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.
This commit is contained in:
parent
2183af62e5
commit
b033384135
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user