Add and set read-only mount flag in the Partition object (#10)
Set the partition read-only mount flag at the same time as setting the file system mount points. Closes #10 - Gparted fails to resize btrfs partition that is mounted read-only
This commit is contained in:
parent
441b39347a
commit
c82883d6a7
|
@ -49,6 +49,8 @@ public:
|
|||
static void load_cache();
|
||||
static bool is_dev_mounted( const Glib::ustring & path );
|
||||
static bool is_dev_mounted( const BlockSpecial & bs );
|
||||
static bool is_dev_mounted_readonly( const Glib::ustring & path );
|
||||
static bool is_dev_mounted_readonly( const BlockSpecial & bs );
|
||||
static std::vector<Glib::ustring> get_all_mountpoints();
|
||||
static const std::vector<Glib::ustring> & get_mounted_mountpoints( const Glib::ustring & path );
|
||||
static const std::vector<Glib::ustring> & get_fstab_mountpoints( const Glib::ustring & path );
|
||||
|
|
|
@ -165,6 +165,7 @@ public:
|
|||
Sector significant_threshold; //Threshold from intrinsic to significant unallocated sectors
|
||||
bool inside_extended;
|
||||
bool busy;
|
||||
bool fs_readonly; // Is the file system mounted read-only?
|
||||
std::vector<Glib::ustring> flags ;
|
||||
|
||||
PartitionVector logicals;
|
||||
|
|
|
@ -1673,6 +1673,7 @@ bool GParted_Core::set_mountpoints_helper( Partition & partition, const Glib::us
|
|||
if ( mountpoints.size() )
|
||||
{
|
||||
partition.add_mountpoints( mountpoints );
|
||||
partition.fs_readonly = Mount_Info::is_dev_mounted_readonly( search_path );
|
||||
return true ;
|
||||
}
|
||||
|
||||
|
|
|
@ -93,6 +93,21 @@ bool Mount_Info::is_dev_mounted( const BlockSpecial & bs )
|
|||
return iter_mp != mount_info.end();
|
||||
}
|
||||
|
||||
// Return whether the device path, such as /dev/sda3, is mounted read-only or not
|
||||
bool Mount_Info::is_dev_mounted_readonly( const Glib::ustring & path )
|
||||
{
|
||||
return is_dev_mounted_readonly( BlockSpecial( path ) );
|
||||
}
|
||||
|
||||
// Return whether the BlockSpecial object, such as {"/dev/sda3", 8, 3}, is mounted read-only or not
|
||||
bool Mount_Info::is_dev_mounted_readonly( const BlockSpecial & bs )
|
||||
{
|
||||
MountMapping::const_iterator iter_mp = mount_info.find( bs );
|
||||
if ( iter_mp == mount_info.end() )
|
||||
return false;
|
||||
return iter_mp->second.readonly;
|
||||
}
|
||||
|
||||
std::vector<Glib::ustring> Mount_Info::get_all_mountpoints()
|
||||
{
|
||||
MountMapping::const_iterator iter_mp;
|
||||
|
|
|
@ -52,6 +52,7 @@ void Partition::Reset()
|
|||
sector_size = 0 ;
|
||||
fs_block_size = -1;
|
||||
inside_extended = busy = strict_start = false ;
|
||||
fs_readonly = false;
|
||||
logicals .clear() ;
|
||||
flags .clear() ;
|
||||
mountpoints .clear() ;
|
||||
|
|
Loading…
Reference in New Issue