[gparted] Add lookup for Linux kernel names of mountable file systems (#742741)
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Add lookup for Linux kernel names of mountable file systems (#742741)
- Date: Mon, 9 Mar 2015 16:53:27 +0000 (UTC)
commit 0bdc1fef142d804cc094da3dbb351c4599bc8cbd
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date: Sun Jan 11 10:01:02 2015 +0000
Add lookup for Linux kernel names of mountable file systems (#742741)
Function Utils::get_filesystem_kernel_name() returns the name of the
file system as needed for use in the mount command:
mount -t TYPE DEVICE DIR
Needed because the kernel / mount name is 'hfsplus' where as libparted /
GParted, as reported by Utils::get_filesystem_string(), calls it 'hfs+'.
So far just added debugging when mounting a file system to test the
function works.
# ./gartedbin
======================
libparted : 2.1
======================
DEBUG: (hfsplus) # mount -v /dev/sdb5 "/mnt/5"
DEBUG: (nilfs2) # mount -v /dev/sdb1 "/mnt/1"
Bug 742741 - Nilfs2 file system is unusable on RHEL/CentOS 6
include/Utils.h | 1 +
src/Utils.cc | 28 ++++++++++++++++++++++++++++
src/Win_GParted.cc | 2 ++
3 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/include/Utils.h b/include/Utils.h
index 0948d44..a26e17d 100644
--- a/include/Utils.h
+++ b/include/Utils.h
@@ -175,6 +175,7 @@ public:
static Glib::RefPtr<Gdk::Pixbuf> get_color_as_pixbuf( FILESYSTEM filesystem, int width, int height ) ;
static int get_filesystem_label_maxlength( FILESYSTEM filesystem ) ;
static Glib::ustring get_filesystem_string( FILESYSTEM filesystem ) ;
+ static const Glib::ustring get_filesystem_kernel_name( FILESYSTEM fstype );
static Glib::ustring get_filesystem_software( FILESYSTEM filesystem ) ;
static bool kernel_supports_fs( const Glib::ustring & fs ) ;
static bool kernel_version_at_least( int major_ver, int minor_ver, int patch_ver ) ;
diff --git a/src/Utils.cc b/src/Utils.cc
index b2afdb4..f190688 100644
--- a/src/Utils.cc
+++ b/src/Utils.cc
@@ -182,6 +182,7 @@ int Utils::get_filesystem_label_maxlength( FILESYSTEM filesystem )
}
}
+// Return libparted file system name / GParted display name
Glib::ustring Utils::get_filesystem_string( FILESYSTEM filesystem )
{
switch( filesystem )
@@ -244,6 +245,33 @@ Glib::ustring Utils::get_filesystem_string( FILESYSTEM filesystem )
}
}
+// Return Linux kernel name only for mountable file systems.
+// (Identical to a subset of the libparted names except that it's hfsplus instead of hfs+).
+const Glib::ustring Utils::get_filesystem_kernel_name( FILESYSTEM fstype )
+{
+ switch ( fstype )
+ {
+ case FS_BTRFS : return "btrfs";
+ case FS_EXFAT : return "exfat";
+ case FS_EXT2 : return "ext2";
+ case FS_EXT3 : return "ext3";
+ case FS_EXT4 : return "ext4";
+ case FS_F2FS : return "f2fs";
+ case FS_FAT16 : return "fat16";
+ case FS_FAT32 : return "fat32";
+ case FS_HFS : return "hfs";
+ case FS_HFSPLUS : return "hfsplus";
+ case FS_JFS : return "jfs";
+ case FS_NILFS2 : return "nilfs2";
+ case FS_NTFS : return "ntfs";
+ case FS_REISER4 : return "reiser4";
+ case FS_REISERFS : return "reiserfs";
+ case FS_UFS : return "ufs";
+ case FS_XFS : return "xfs";
+ default : return "";
+ }
+}
+
Glib::ustring Utils::get_filesystem_software( FILESYSTEM filesystem )
{
switch( filesystem )
diff --git a/src/Win_GParted.cc b/src/Win_GParted.cc
index cc77ba1..02e6e32 100644
--- a/src/Win_GParted.cc
+++ b/src/Win_GParted.cc
@@ -2290,6 +2290,8 @@ void Win_GParted::activate_mount_partition( unsigned int index )
selected_partition .get_mountpoints()[ index ] ) ) ;
cmd = "mount -v " + selected_partition.get_path() +
" \"" + selected_partition.get_mountpoints()[index] + "\"";
+ // FIXME: Replace debugging with mount specifying file system type
+ std::cout << "DEBUG: (" << Utils::get_filesystem_kernel_name( selected_partition.filesystem ) << ") #
" << cmd << std::endl;
success = ! Utils::execute_command( cmd, output, error );
hide_pulsebar();
if ( ! success )
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]