summaryrefslogtreecommitdiffstats
path: root/disk-utils/fdisk-menu.c
diff options
context:
space:
mode:
authorSassan Panahinejad2016-05-13 12:42:14 +0200
committerKarel Zak2016-05-18 13:46:35 +0200
commit304cf9499dc5a8b170f8be56f59e9fddc5545b8a (patch)
treea55160af4cf7aa10af5579c1622cbb3014b5cb26 /disk-utils/fdisk-menu.c
parentlibfdisk: fix range checking for fdisk_set_last_lba (diff)
downloadkernel-qcow2-util-linux-304cf9499dc5a8b170f8be56f59e9fddc5545b8a.tar.gz
kernel-qcow2-util-linux-304cf9499dc5a8b170f8be56f59e9fddc5545b8a.tar.xz
kernel-qcow2-util-linux-304cf9499dc5a8b170f8be56f59e9fddc5545b8a.zip
fdisk: Add support for altering GPT size
Adds an options (l) to the GPT menu to resize the GPT.
Diffstat (limited to 'disk-utils/fdisk-menu.c')
-rw-r--r--disk-utils/fdisk-menu.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c
index b099cc3c2..ce3422c69 100644
--- a/disk-utils/fdisk-menu.c
+++ b/disk-utils/fdisk-menu.c
@@ -165,6 +165,7 @@ struct menu menu_gpt = {
MENU_XENT('i', N_("change disk GUID")),
MENU_XENT('n', N_("change partition name")),
MENU_XENT('u', N_("change partition UUID")),
+ MENU_XENT('l', N_("change table length")),
MENU_XENT('M', N_("enter protective/hybrid MBR")),
MENU_XSEP(""),
@@ -691,6 +692,7 @@ static int gpt_menu_cb(struct fdisk_context **cxt0,
struct fdisk_partition *pa = NULL;
size_t n;
int rc = 0;
+ unsigned long length;
assert(cxt);
assert(ent);
@@ -702,6 +704,12 @@ static int gpt_menu_cb(struct fdisk_context **cxt0,
switch (ent->key) {
case 'i':
return fdisk_set_disklabel_id(cxt);
+ case 'l':
+ rc = fdisk_ask_number(cxt, 1, fdisk_get_npartitions(cxt),
+ ~(uint32_t)0, _("New maximum entries"), &length);
+ if (rc)
+ return rc;
+ return fdisk_gpt_set_npartitions(cxt, length);
case 'M':
mbr = fdisk_new_nested_context(cxt, "dos");
if (!mbr)