[gparted] Fix incorrect dmraid partition path name (#634553)
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Fix incorrect dmraid partition path name (#634553)
- Date: Thu, 11 Nov 2010 17:37:44 +0000 (UTC)
commit 3c35a7ff42927bfcd89465661766b661f4fbcb76
Author: Curtis Gedak <gedakc gmail com>
Date: Thu Nov 11 10:21:35 2010 -0700
Fix incorrect dmraid partition path name (#634553)
Enhance code so that all calls to the ped_partition_get_path
function in the libparted library go through one
GParted_Core::get_partition_path method.
This one method makes the appropriate adjustments to the dmraid
partition path name as required.
Closes bug #634553 - ntfsresize fails on RAID array
src/GParted_Core.cc | 32 +++++++++++---------------------
1 files changed, 11 insertions(+), 21 deletions(-)
---
diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc
index b900e73..a94b672 100644
--- a/src/GParted_Core.cc
+++ b/src/GParted_Core.cc
@@ -865,11 +865,14 @@ Glib::ustring GParted_Core::get_partition_path( PedPartition * lp_partition )
{
DMRaid dmraid; //Use cache of dmraid device information
char * lp_path; //we have to free the result of ped_partition_get_path()
- Glib::ustring partition_path;
+ Glib::ustring partition_path = "Partition path not found";
lp_path = ped_partition_get_path(lp_partition);
- partition_path = lp_path;
- free(lp_path);
+ if ( lp_path != NULL )
+ {
+ partition_path = lp_path;
+ free(lp_path);
+ }
//Ensure partition path name is compatible with dmraid
if ( dmraid .is_dmraid_supported()
@@ -1060,15 +1063,9 @@ GParted::FILESYSTEM GParted_Core::get_filesystem()
//TODO: Temporary code to detect ext4.
// Replace when libparted >= 1.9.0 is chosen as minimum required version.
- char * const path = ped_partition_get_path( lp_partition );
-
- if (NULL != path)
- {
- temp = fs_info .get_fs_type( Glib::ustring( path ) ) ;
- if ( temp == "ext4" || temp == "ext4dev" )
- fs_type = temp ;
- free( path );
- }
+ temp = fs_info .get_fs_type( get_partition_path( lp_partition ) ) ;
+ if ( temp == "ext4" || temp == "ext4dev" )
+ fs_type = temp ;
}
//FS_Info (blkid) file system detection because current libparted (v2.2) does not
@@ -1076,12 +1073,7 @@ GParted::FILESYSTEM GParted_Core::get_filesystem()
if ( fs_type .empty() )
{
//TODO: blkid does not return anything for an "extended" partition. Need to handle this somehow
- char * const path = ped_partition_get_path( lp_partition );
- if (NULL != path)
- {
- fs_type = fs_info.get_fs_type( Glib::ustring( path ) ) ;
- free( path );
- }
+ fs_type = fs_info.get_fs_type( get_partition_path( lp_partition ) ) ;
}
if ( ! fs_type .empty() )
@@ -2752,9 +2744,7 @@ bool GParted_Core::calibrate_partition( Partition & partition, OperationDetail &
if ( lp_partition )//FIXME: add check to see if lp_partition ->type matches partition .type..
{
- char * lp_path = ped_partition_get_path( lp_partition ) ;
- partition .add_path( lp_path, true ) ;
- free( lp_path ) ;
+ partition .add_path( get_partition_path( lp_partition ) ) ;
partition .sector_start = lp_partition ->geom .start ;
partition .sector_end = lp_partition ->geom .end ;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]