Index: uspace/lib/fdisk/Makefile
===================================================================
--- uspace/lib/fdisk/Makefile	(revision f63a00737ae514202c143417f555f91e925c24bb)
+++ uspace/lib/fdisk/Makefile	(revision 9e534065df86b5f49dd2c8a5029bd6cc3f6b3a7d)
@@ -28,5 +28,5 @@
 
 USPACE_PREFIX = ../..
-EXTRA_CFLAGS = -Iinclude -I$(LIBBLOCK_PREFIX)
+EXTRA_CFLAGS = -Iinclude
 
 LIBRARY = libfdisk
Index: uspace/lib/fdisk/include/types/fdisk.h
===================================================================
--- uspace/lib/fdisk/include/types/fdisk.h	(revision f63a00737ae514202c143417f555f91e925c24bb)
+++ uspace/lib/fdisk/include/types/fdisk.h	(revision 9e534065df86b5f49dd2c8a5029bd6cc3f6b3a7d)
@@ -110,4 +110,7 @@
 /** List of devices available for managing by fdisk */
 typedef struct {
+	/** Fdisk instance */
+	struct fdisk *fdisk;
+	/** List of device info structures */
 	list_t devinfos; /* of fdisk_dev_info_t */
 } fdisk_dev_list_t;
@@ -123,6 +126,4 @@
 	/** Service name or NULL if not determined yet */
 	char *svcname;
-	/** Device is initialized in libblock */
-	bool blk_inited;
 } fdisk_dev_info_t;
 
Index: uspace/lib/fdisk/src/fdisk.c
===================================================================
--- uspace/lib/fdisk/src/fdisk.c	(revision f63a00737ae514202c143417f555f91e925c24bb)
+++ uspace/lib/fdisk/src/fdisk.c	(revision 9e534065df86b5f49dd2c8a5029bd6cc3f6b3a7d)
@@ -35,8 +35,8 @@
 
 #include <adt/list.h>
-#include <block.h>
 #include <errno.h>
 #include <fdisk.h>
 #include <loc.h>
+#include <macros.h>
 #include <mem.h>
 #include <stdlib.h>
@@ -65,7 +65,4 @@
 		return;
 
-	if (info->blk_inited)
-		block_fini(info->svcid);
-
 	free(info->svcname);
 	free(info);
@@ -125,4 +122,5 @@
 		return ENOMEM;
 
+	devlist->fdisk = fdisk;
 	list_initialize(&devlist->devinfos);
 
@@ -222,25 +220,12 @@
 int fdisk_dev_info_capacity(fdisk_dev_info_t *info, fdisk_cap_t *cap)
 {
-	size_t bsize;
-	aoff64_t nblocks;
-	int rc;
-
-	if (!info->blk_inited) {
-		rc = block_init(info->svcid, 2048);
-		if (rc != EOK)
-			return rc;
-
-		info->blk_inited = true;
-	}
-
-	rc = block_get_bsize(info->svcid, &bsize);
+	vbd_disk_info_t vinfo;
+	int rc;
+
+	rc = vbd_disk_info(info->devlist->fdisk->vbd, info->svcid, &vinfo);
 	if (rc != EOK)
 		return EIO;
 
-	rc = block_get_nblocks(info->svcid, &nblocks);
-	if (rc != EOK)
-		return EIO;
-
-	fdisk_cap_from_blocks(nblocks, bsize, cap);
+	fdisk_cap_from_blocks(vinfo.nblocks, vinfo.block_size, cap);
 	return EOK;
 }
@@ -435,5 +420,4 @@
 int fdisk_dev_open(fdisk_t *fdisk, service_id_t sid, fdisk_dev_t **rdev)
 {
-	vbd_disk_info_t vinfo;
 	fdisk_dev_t *dev = NULL;
 	service_id_t *psids = NULL;
@@ -451,10 +435,4 @@
 	list_initialize(&dev->pri_ba);
 	list_initialize(&dev->log_ba);
-
-	rc = vbd_disk_info(fdisk->vbd, sid, &vinfo);
-	if (rc != EOK) {
-		rc = EIO;
-		goto error;
-	}
 
 	rc = fdisk_update_dev_info(dev);
@@ -554,23 +532,5 @@
 int fdisk_dev_capacity(fdisk_dev_t *dev, fdisk_cap_t *cap)
 {
-	size_t bsize;
-	aoff64_t nblocks;
-	int rc;
-
-	rc = block_init(dev->sid, 2048);
-	if (rc != EOK)
-		return rc;
-
-	rc = block_get_bsize(dev->sid, &bsize);
-	if (rc != EOK)
-		return EIO;
-
-	rc = block_get_nblocks(dev->sid, &nblocks);
-	if (rc != EOK)
-		return EIO;
-
-	block_fini(dev->sid);
-
-	fdisk_cap_from_blocks(nblocks, bsize, cap);
+	fdisk_cap_from_blocks(dev->dinfo.nblocks, dev->dinfo.block_size, cap);
 	return EOK;
 }
