[parted-devel] [PATCH 4/7] parted: make _partition_warn_busy actually a warning instead of an error
Phillip Susi
psusi at ubuntu.com
Sun May 25 21:11:30 UTC 2014
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 9e85ff0..4de66da 100644
--- a/NEWS
+++ b/NEWS
@@ -132,6 +132,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 6a5440b..17577a8 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 81ccdb8..d0db709 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 f5701a3..2c3b3a0 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/sdf 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 2c4390d..f4c75b9 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.1
More information about the parted-devel
mailing list