Index: uspace/lib/fdisk/include/fdisk.h
===================================================================
--- uspace/lib/fdisk/include/fdisk.h	(revision 0ecfc62d767bfd2b7b7885ad490d2eb39d4eeb8f)
+++ uspace/lib/fdisk/include/fdisk.h	(revision 4b6635a753fc6cfed370d74f7f99b2d9848440e0)
@@ -71,5 +71,5 @@
 extern int fdisk_cap_parse(const char *, fdisk_cap_t *);
 extern int fdisk_ltype_format(label_type_t, char **);
-extern int fdisk_fstype_format(fdisk_fstype_t, char **);
+extern int fdisk_fstype_format(vol_fstype_t, char **);
 extern int fdisk_pkind_format(label_pkind_t, char **);
 
Index: uspace/lib/fdisk/include/types/fdisk.h
===================================================================
--- uspace/lib/fdisk/include/types/fdisk.h	(revision 0ecfc62d767bfd2b7b7885ad490d2eb39d4eeb8f)
+++ uspace/lib/fdisk/include/types/fdisk.h	(revision 4b6635a753fc6cfed370d74f7f99b2d9848440e0)
@@ -41,4 +41,5 @@
 #include <stdint.h>
 #include <types/label.h>
+#include <types/vol.h>
 #include <vbd.h>
 #include <vol.h>
@@ -57,21 +58,4 @@
 
 #define CU_LIMIT (cu_ybyte + 1)
-
-/** File system type */
-typedef enum {
-	fdfs_none = 0,
-	fdfs_unknown,
-	fdfs_exfat,
-	fdfs_fat,
-	fdfs_minix,
-	fdfs_ext4
-} fdisk_fstype_t;
-
-/** Highest fstype value + 1 */
-#define FDFS_LIMIT (fdfs_ext4 + 1)
-/** Lowest fstype allowed for creation */
-#define FDFS_CREATE_LO fdfs_exfat
-/** Highest fstype allowed for creation + 1 */
-#define FDFS_CREATE_HI (fdfs_ext4 + 1)
 
 /** Partition capacity */
@@ -143,6 +127,8 @@
 	/** Partition kind */
 	label_pkind_t pkind;
+	/** Partition contents */
+	vol_part_cnt_t pcnt;
 	/** File system type */
-	fdisk_fstype_t fstype;
+	vol_fstype_t fstype;
 	/** Partition ID */
 	vbd_part_id_t part_id;
@@ -153,4 +139,6 @@
 	/** Number of blocks */
 	aoff64_t nblocks;
+	/** Service ID */
+	service_id_t svc_id;
 } fdisk_part_t;
 
@@ -162,5 +150,5 @@
 	label_pkind_t pkind;
 	/** File system type */
-	fdisk_fstype_t fstype;
+	vol_fstype_t fstype;
 } fdisk_part_spec_t;
 
@@ -171,6 +159,8 @@
 	/** Partition kind */
 	label_pkind_t pkind;
+	/** Partition contents */
+	vol_part_cnt_t pcnt;
 	/** File system type */
-	fdisk_fstype_t fstype;
+	vol_fstype_t fstype;
 } fdisk_part_info_t;
 
Index: uspace/lib/fdisk/src/fdisk.c
===================================================================
--- uspace/lib/fdisk/src/fdisk.c	(revision 0ecfc62d767bfd2b7b7885ad490d2eb39d4eeb8f)
+++ uspace/lib/fdisk/src/fdisk.c	(revision 4b6635a753fc6cfed370d74f7f99b2d9848440e0)
@@ -261,4 +261,5 @@
 	fdisk_part_t *part;
 	vbd_part_info_t pinfo;
+	vol_part_info_t vpinfo;
 	int rc;
 
@@ -268,4 +269,10 @@
 
 	rc = vbd_part_get_info(dev->fdisk->vbd, partid, &pinfo);
+	if (rc != EOK) {
+		rc = EIO;
+		goto error;
+	}
+
+	rc = vol_part_info(dev->fdisk->vol, pinfo.svc_id, &vpinfo);
 	if (rc != EOK) {
 		rc = EIO;
@@ -278,4 +285,7 @@
 	part->nblocks = pinfo.nblocks;
 	part->pkind = pinfo.pkind;
+	part->svc_id = pinfo.svc_id;
+	part->pcnt = vpinfo.pcnt;
+	part->fstype = vpinfo.fstype;
 
 	switch (part->pkind) {
@@ -551,4 +561,5 @@
 {
 	info->capacity = part->capacity;
+	info->pcnt = part->pcnt;
 	info->fstype = part->fstype;
 	info->pkind = part->pkind;
@@ -589,4 +600,5 @@
 
 	printf("fdisk_part_create() - done\n");
+	part->pcnt = vpc_fs;
 	part->fstype = pspec->fstype;
 	part->capacity = pspec->capacity;
@@ -700,5 +712,5 @@
 }
 
-int fdisk_fstype_format(fdisk_fstype_t fstype, char **rstr)
+int fdisk_fstype_format(vol_fstype_t fstype, char **rstr)
 {
 	const char *sfstype;
@@ -707,20 +719,14 @@
 	sfstype = NULL;
 	switch (fstype) {
-	case fdfs_none:
-		sfstype = "None";
-		break;
-	case fdfs_unknown:
-		sfstype = "Unknown";
-		break;
-	case fdfs_exfat:
+	case fs_exfat:
 		sfstype = "ExFAT";
 		break;
-	case fdfs_fat:
+	case fs_fat:
 		sfstype = "FAT";
 		break;
-	case fdfs_minix:
+	case fs_minix:
 		sfstype = "MINIX";
 		break;
-	case fdfs_ext4:
+	case fs_ext4:
 		sfstype = "Ext4";
 		break;
@@ -916,5 +922,4 @@
 	int rc;
 
-//	pspec->fstype
 	printf("fdisk_part_spec_prepare() - dev=%p pspec=%p vpspec=%p\n", dev, pspec,
 	    vpspec);
@@ -935,17 +940,14 @@
 
 	switch (pspec->fstype) {
-	case fdfs_none:
-	case fdfs_unknown:
-		break;
-	case fdfs_exfat:
+	case fs_exfat:
 		pcnt = lpc_exfat;
 		break;
-	case fdfs_fat:
+	case fs_fat:
 		pcnt = lpc_fat32; /* XXX Detect FAT12/16 vs FAT32 */
 		break;
-	case fdfs_minix:
+	case fs_minix:
 		pcnt = lpc_minix;
 		break;
-	case fdfs_ext4:
+	case fs_ext4:
 		pcnt = lpc_ext4;
 		break;
