Hans de Goede wrote: ... Thanks. The patch is fine. Good timing. If I'm lucky, I'll make an upstream beta release today. I've adjusted the log to keep line lengths < 72 and fixed a space-before-TAB warning in the code. Also, thanks for the BZ URL. I've used a shortened and http (not https) version of it. I'll mention this fix in NEWS separately. >From 66fd2c47599de18b354de21ce7a505ca2abb0f56 Mon Sep 17 00:00:00 2001 From: Hans de Goede <hdegoede@xxxxxxxxxx> Date: Tue, 6 Oct 2009 11:31:14 +0200 Subject: [PATCH] ped_partition_busy: do 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: http://bugzilla.redhat.com/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..6a3c6b3 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.204.g8ea19 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list