788f613dc1
- msdos_partition_is_flag_available() should return 1 for swap flag (#513729)
44 lines
1.7 KiB
Diff
44 lines
1.7 KiB
Diff
From fa2ad81437541251d6e47eccf3bc413cf68a0c31 Mon Sep 17 00:00:00 2001
|
|
From: Hans de Goede <hdegoede@redhat.com>
|
|
Date: Tue, 6 Oct 2009 11:18:25 +0200
|
|
Subject: [PATCH] ped_partition_busy should not call the libparted exception handler
|
|
|
|
Modify libparted/arch/linux.c _partition_get_part_dev() to not call
|
|
_device_stat() but instead use stat directly, as _device_stat() calls
|
|
the libparted exception handler and we don't want this here, the only caller
|
|
of _partition_get_part_dev() is _partition_is_mounted(), which in turn only
|
|
gets called by linux_partition_is_busy(), and we don't want to "throw"
|
|
exceptions from ped_partition_busy()
|
|
|
|
This issue was noticed in combination with pyparted as used by anaconda, see:
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=527035#c10
|
|
---
|
|
libparted/arch/linux.c | 4 +++-
|
|
1 files changed, 3 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
|
|
index 52f7d21..a8d6daf 100644
|
|
--- a/libparted/arch/linux.c
|
|
+++ b/libparted/arch/linux.c
|
|
@@ -2127,7 +2127,7 @@ _partition_get_part_dev (const PedPartition* part)
|
|
struct stat dev_stat;
|
|
int dev_major, dev_minor;
|
|
|
|
- if (!_device_stat (part->disk->dev, &dev_stat))
|
|
+ if (stat (part->disk->dev->path, &dev_stat))
|
|
return (dev_t)0;
|
|
dev_major = major (dev_stat.st_rdev);
|
|
dev_minor = minor (dev_stat.st_rdev);
|
|
@@ -2184,6 +2184,8 @@ _partition_is_mounted (const PedPartition *part)
|
|
if (!ped_partition_is_active (part))
|
|
return 0;
|
|
dev = _partition_get_part_dev (part);
|
|
+ if (!dev)
|
|
+ return 0;
|
|
return _partition_is_mounted_by_dev (dev);
|
|
}
|
|
|
|
--
|
|
1.6.5.rc2
|
|
|