13386670d0
- libparted: Add support for partition resize - parted: add resizepart command
106 lines
4.1 KiB
Diff
106 lines
4.1 KiB
Diff
From f46146a15bf45478569c1d364661d3d54f8e3a1a Mon Sep 17 00:00:00 2001
|
|
From: Phillip Susi <psusi@ubuntu.com>
|
|
Date: Wed, 30 Nov 2011 13:13:58 -0500
|
|
Subject: [PATCH 129/134] parted: make _partition_warn_busy actually a warning
|
|
instead of an error
|
|
|
|
This function was throwing a PED_EXCEPTION_ERROR with only the
|
|
PED_EXCEPTION_CANCEL option. Converted to a PED_EXCEPTION_WARNING
|
|
with the option to continue anyhow.
|
|
---
|
|
NEWS | 3 +++
|
|
parted/parted.c | 17 ++++++++++-------
|
|
tests/t1101-busy-partition.sh | 2 +-
|
|
tests/t1102-loop-label.sh | 3 +--
|
|
tests/t9041-undetected-in-use-16th-partition.sh | 4 ++--
|
|
5 files changed, 17 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/NEWS b/NEWS
|
|
index ad2fea1..118f459 100644
|
|
--- a/NEWS
|
|
+++ b/NEWS
|
|
@@ -134,6 +134,9 @@ GNU parted NEWS -*- outline -*-
|
|
|
|
** Changes in behavior
|
|
|
|
+ When attempting to manipulate a mounted partition, parted now issues
|
|
+ a warning that you can choose to ignore, instead of an error.
|
|
+
|
|
When creating a loop label, it automatically comes with a partition
|
|
using the whole disk.
|
|
|
|
diff --git a/parted/parted.c b/parted/parted.c
|
|
index a36ca28..ec9e04e 100644
|
|
--- a/parted/parted.c
|
|
+++ b/parted/parted.c
|
|
@@ -224,14 +224,17 @@ _partition_warn_busy (PedPartition* part)
|
|
|
|
if (ped_partition_is_busy (part)) {
|
|
path = ped_partition_get_path (part);
|
|
- ped_exception_throw (
|
|
- PED_EXCEPTION_ERROR,
|
|
- PED_EXCEPTION_CANCEL,
|
|
- _("Partition %s is being used. You must unmount it "
|
|
- "before you modify it with Parted."),
|
|
- path);
|
|
+ if (ped_exception_throw (
|
|
+ PED_EXCEPTION_WARNING,
|
|
+ PED_EXCEPTION_YES_NO,
|
|
+ _("Partition %s is being used. Are you sure you " \
|
|
+ "want to continue?"),
|
|
+ path) != PED_EXCEPTION_YES)
|
|
+ {
|
|
+ free (path);
|
|
+ return 0;
|
|
+ }
|
|
free (path);
|
|
- return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
diff --git a/tests/t1101-busy-partition.sh b/tests/t1101-busy-partition.sh
|
|
index eb3fac6..ad091f7 100755
|
|
--- a/tests/t1101-busy-partition.sh
|
|
+++ b/tests/t1101-busy-partition.sh
|
|
@@ -29,7 +29,7 @@ scsi_debug_setup_ dev_size_mb=80 > dev-name ||
|
|
dev=$(cat dev-name)
|
|
|
|
cat <<EOF > exp-error || framework_failure
|
|
-Error: Partition ${dev}2 is being used. You must unmount it before you modify it with Parted.
|
|
+Warning: Partition ${dev}2 is being used. Are you sure you want to continue?
|
|
EOF
|
|
|
|
parted -s "$dev" mklabel msdos > out 2>&1 || fail=1
|
|
diff --git a/tests/t1102-loop-label.sh b/tests/t1102-loop-label.sh
|
|
index c6574c2..9752002 100644
|
|
--- a/tests/t1102-loop-label.sh
|
|
+++ b/tests/t1102-loop-label.sh
|
|
@@ -73,8 +73,7 @@ compare exp out || fail=1
|
|
# make sure partition busy check works ( mklabel checks whole disk )
|
|
parted -s "$dev" rm 1 > out 2>&1; test $? = 1 || fail=1
|
|
# create expected output file
|
|
-echo "Error: Partition $dev is being used. You must unmount it before you modify \
|
|
-it with Parted." > exp
|
|
+echo "Warning: Partition ${dev} is being used. Are you sure you want to continue?" > exp
|
|
compare exp out || fail=1
|
|
|
|
umount "$mount_point"
|
|
diff --git a/tests/t9041-undetected-in-use-16th-partition.sh b/tests/t9041-undetected-in-use-16th-partition.sh
|
|
index b763e91..edaae1b 100644
|
|
--- a/tests/t9041-undetected-in-use-16th-partition.sh
|
|
+++ b/tests/t9041-undetected-in-use-16th-partition.sh
|
|
@@ -87,8 +87,8 @@ for part_dev in $partitions; do
|
|
# Removal of mounted partition must fail.
|
|
parted -s $scsi_dev rm $n > out 2>&1 && fail=1
|
|
|
|
- echo "Error: Partition $part_dev is being used." \
|
|
- 'You must unmount it before you modify it with Parted.' \
|
|
+ echo "Warning: Partition $part_dev is being used." \
|
|
+ 'Are you sure you want to continue?' \
|
|
> exp-error || framework_failure_
|
|
|
|
# expect error
|
|
--
|
|
1.9.3
|
|
|