From 65f7e1f65ef394899bdc0474caf182e5deeeb3df Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Sun, 25 Oct 2009 10:32:58 +0100 Subject: [PATCH 2/2] =?utf-8?q?Bug=2024679=20=E2=80=94=20support=20creating=20minix=20file=20systems?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit --- src/devkit-disks-daemon.c | 16 ++++++++++++++++ src/job-mkfs.c | 25 +++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 0 deletions(-) diff --git a/src/devkit-disks-daemon.c b/src/devkit-disks-daemon.c index 746161a..324bea6 100644 --- a/src/devkit-disks-daemon.c +++ b/src/devkit-disks-daemon.c @@ -297,6 +297,22 @@ static const DevkitDisksFilesystem known_file_systems[] = { FALSE, /* supports_online_resize_shrink */ }, { + "minix", /* id */ + "Minix", /* name */ + TRUE, /* supports_unix_owners */ + TRUE, /* can_mount */ + TRUE, /* can_create */ + 0, /* max_label_len */ + FALSE, /* supports_label_rename */ + FALSE, /* supports_online_label_rename*/ + TRUE, /* supports_fsck */ + FALSE, /* supports_online_fsck */ + FALSE, /* supports_resize_enlarge */ + FALSE, /* supports_online_resize_enlarge */ + FALSE, /* supports_resize_shrink */ + FALSE, /* supports_online_resize_shrink */ + }, + { "ntfs", /* id */ "NTFS", /* name */ FALSE, /* supports_unix_owners */ diff --git a/src/job-mkfs.c b/src/job-mkfs.c index 58e82b1..48e1ac7 100644 --- a/src/job-mkfs.c +++ b/src/job-mkfs.c @@ -214,6 +214,31 @@ main (int argc, char **argv) g_string_append_printf (s, " %s", device); command_line = g_string_free (s, FALSE); + } else if (strcmp (fstype, "minix") == 0) { + + s = g_string_new ("mkfs.minix"); + /* minix does not support labels */ + for (n = 0; options[n] != NULL; n++) { + if (g_str_has_prefix (options[n], "take_ownership_uid=")) { + take_ownership_uid = strtol (options[n] + sizeof ("take_ownership_uid=") - 1, &endp, 10); + if (endp == NULL || *endp != '\0') { + g_printerr ("option %s is malformed\n", options[n]); + goto out; + } + } else if (g_str_has_prefix (options[n], "take_ownership_gid=")) { + take_ownership_gid = strtol (options[n] + sizeof ("take_ownership_gid=") - 1, &endp, 10); + if (endp == NULL || *endp != '\0') { + g_printerr ("option %s is malformed\n", options[n]); + goto out; + } + } else { + g_printerr ("option %s not supported\n", options[n]); + goto out; + } + } + g_string_append_printf (s, " %s", device); + command_line = g_string_free (s, FALSE); + } else if (strcmp (fstype, "swap") == 0) { s = g_string_new ("mkswap"); -- 1.6.3.3