mirror of
https://github.com/vdsm/virtual-dsm.git
synced 2025-06-02 10:47:19 +08:00
fix: Fallback to POSIX fallocate (#932)
This commit is contained in:
parent
89b28f36d3
commit
36d3fca4fc
22
src/disk.sh
22
src/disk.sh
@ -141,10 +141,12 @@ createDisk() {
|
||||
else
|
||||
|
||||
# Create an empty file
|
||||
if ! fallocate -l "$DATA_SIZE" "$DISK_FILE"; then
|
||||
if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then
|
||||
rm -f "$DISK_FILE"
|
||||
error "$FAIL" && exit 77
|
||||
if ! fallocate -l "$DATA_SIZE" "$DISK_FILE" &>/dev/null; then
|
||||
if ! fallocate -l -x "$DATA_SIZE" "$DISK_FILE"; then
|
||||
if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then
|
||||
rm -f "$DISK_FILE"
|
||||
error "$FAIL" && exit 77
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -219,9 +221,11 @@ resizeDisk() {
|
||||
else
|
||||
|
||||
# Resize file by allocating more space
|
||||
if ! fallocate -l "$DATA_SIZE" "$DISK_FILE"; then
|
||||
if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then
|
||||
error "$FAIL" && exit 75
|
||||
if ! fallocate -l "$DATA_SIZE" "$DISK_FILE" &>/dev/null; then
|
||||
if ! fallocate -l -x "$DATA_SIZE" "$DISK_FILE"; then
|
||||
if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then
|
||||
error "$FAIL" && exit 75
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -296,8 +300,10 @@ convertDisk() {
|
||||
if [[ "$ALLOCATE" != [Nn]* ]]; then
|
||||
# Work around qemu-img bug
|
||||
CUR_SIZE=$(stat -c%s "$TMP_FILE")
|
||||
if ! fallocate -l "$CUR_SIZE" "$TMP_FILE"; then
|
||||
if ! fallocate -l "$CUR_SIZE" "$TMP_FILE" &>/dev/null; then
|
||||
if ! fallocate -l -x "$CUR_SIZE" "$TMP_FILE"; then
|
||||
error "Failed to allocate $CUR_SIZE bytes for $DISK_DESC image $TMP_FILE"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -328,10 +328,12 @@ if [[ "${FS,,}" == "btrfs" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! fallocate -l "$SYSTEM_SIZE" "$SYSTEM"; then
|
||||
if ! truncate -s "$SYSTEM_SIZE" "$SYSTEM"; then
|
||||
rm -f "$SYSTEM"
|
||||
error "Could not allocate file $SYSTEM for the system disk." && exit 98
|
||||
if ! fallocate -l "$SYSTEM_SIZE" "$SYSTEM" &>/dev/null; then
|
||||
if ! fallocate -l -x "$SYSTEM_SIZE" "$SYSTEM"; then
|
||||
if ! truncate -s "$SYSTEM_SIZE" "$SYSTEM"; then
|
||||
rm -f "$SYSTEM"
|
||||
error "Could not allocate file $SYSTEM for the system disk." && exit 98
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -63,6 +63,7 @@ if [ -z "${CPU// /}" ] && grep -qi "model:" <<< "$CPI"; then
|
||||
fi
|
||||
|
||||
CPU="${CPU// CPU/}"
|
||||
CPU="${CPU// 6 Core/}"
|
||||
CPU="${CPU// 8 Core/}"
|
||||
CPU="${CPU// 16 Core/}"
|
||||
CPU="${CPU// 32 Core/}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user