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
This commit is contained in:
parent
02135a4ee5
commit
3c35a7ff42
|
@ -865,11 +865,14 @@ Glib::ustring GParted_Core::get_partition_path( PedPartition * lp_partition )
|
||||||
{
|
{
|
||||||
DMRaid dmraid; //Use cache of dmraid device information
|
DMRaid dmraid; //Use cache of dmraid device information
|
||||||
char * lp_path; //we have to free the result of ped_partition_get_path()
|
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);
|
lp_path = ped_partition_get_path(lp_partition);
|
||||||
partition_path = lp_path;
|
if ( lp_path != NULL )
|
||||||
free(lp_path);
|
{
|
||||||
|
partition_path = lp_path;
|
||||||
|
free(lp_path);
|
||||||
|
}
|
||||||
|
|
||||||
//Ensure partition path name is compatible with dmraid
|
//Ensure partition path name is compatible with dmraid
|
||||||
if ( dmraid .is_dmraid_supported()
|
if ( dmraid .is_dmraid_supported()
|
||||||
|
@ -1060,15 +1063,9 @@ GParted::FILESYSTEM GParted_Core::get_filesystem()
|
||||||
|
|
||||||
//TODO: Temporary code to detect ext4.
|
//TODO: Temporary code to detect ext4.
|
||||||
// Replace when libparted >= 1.9.0 is chosen as minimum required version.
|
// Replace when libparted >= 1.9.0 is chosen as minimum required version.
|
||||||
char * const path = ped_partition_get_path( lp_partition );
|
temp = fs_info .get_fs_type( get_partition_path( lp_partition ) ) ;
|
||||||
|
if ( temp == "ext4" || temp == "ext4dev" )
|
||||||
if (NULL != path)
|
fs_type = temp ;
|
||||||
{
|
|
||||||
temp = fs_info .get_fs_type( Glib::ustring( path ) ) ;
|
|
||||||
if ( temp == "ext4" || temp == "ext4dev" )
|
|
||||||
fs_type = temp ;
|
|
||||||
free( path );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//FS_Info (blkid) file system detection because current libparted (v2.2) does not
|
//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() )
|
if ( fs_type .empty() )
|
||||||
{
|
{
|
||||||
//TODO: blkid does not return anything for an "extended" partition. Need to handle this somehow
|
//TODO: blkid does not return anything for an "extended" partition. Need to handle this somehow
|
||||||
char * const path = ped_partition_get_path( lp_partition );
|
fs_type = fs_info.get_fs_type( get_partition_path( lp_partition ) ) ;
|
||||||
if (NULL != path)
|
|
||||||
{
|
|
||||||
fs_type = fs_info.get_fs_type( Glib::ustring( path ) ) ;
|
|
||||||
free( path );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! fs_type .empty() )
|
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..
|
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( get_partition_path( lp_partition ) ) ;
|
||||||
partition .add_path( lp_path, true ) ;
|
|
||||||
free( lp_path ) ;
|
|
||||||
|
|
||||||
partition .sector_start = lp_partition ->geom .start ;
|
partition .sector_start = lp_partition ->geom .start ;
|
||||||
partition .sector_end = lp_partition ->geom .end ;
|
partition .sector_end = lp_partition ->geom .end ;
|
||||||
|
|
Loading…
Reference in New Issue