Index: uspace/lib/c/generic/vbd.c
===================================================================
--- uspace/lib/c/generic/vbd.c	(revision 70815a24cf429286a07e08f8ad1f2a835d6be638)
+++ uspace/lib/c/generic/vbd.c	(revision 83dd7438820d500c677f0c1cbfcbc26b5ba760e2)
@@ -264,20 +264,21 @@
 {
 	async_exch_t *exch;
-	sysarg_t index;
-	sysarg_t b0_lo, b0_hi;
-	sysarg_t nb_lo, nb_hi;
-	int retval;
-
-	exch = async_exchange_begin(vbd->sess);
-	retval = async_req_1_5(exch, VBD_PART_GET_INFO, part, &index,
-	    &b0_lo, &b0_hi, &nb_lo, &nb_hi);
-	async_exchange_end(exch);
-
-	if (retval != EOK)
-		return EIO;
-
-	pinfo->index = index;
-	pinfo->block0 = MERGE_LOUP32(b0_lo, b0_hi);
-	pinfo->nblocks = MERGE_LOUP32(nb_lo, nb_hi);
+	sysarg_t retval;
+	ipc_call_t answer;
+
+	exch = async_exchange_begin(vbd->sess);
+	aid_t req = async_send_1(exch, VBD_PART_GET_INFO, part, &answer);
+	int rc = async_data_read_start(exch, pinfo, sizeof(vbd_part_info_t));
+	async_exchange_end(exch);
+
+	if (rc != EOK) {
+		async_forget(req);
+		return EIO;
+	}
+
+	async_wait_for(req, &retval);
+	if (retval != EOK)
+		return EIO;
+
 	return EOK;
 }
Index: uspace/lib/c/generic/vol.c
===================================================================
--- uspace/lib/c/generic/vol.c	(revision 70815a24cf429286a07e08f8ad1f2a835d6be638)
+++ uspace/lib/c/generic/vol.c	(revision 83dd7438820d500c677f0c1cbfcbc26b5ba760e2)
@@ -192,9 +192,10 @@
 {
 	async_exch_t *exch;
-	sysarg_t dcnt, ltype;
+	sysarg_t dcnt, ltype, flags;
 	int retval;
 
 	exch = async_exchange_begin(vol->sess);
-	retval = async_req_1_2(exch, VOL_DISK_INFO, sid, &dcnt, &ltype);
+	retval = async_req_1_3(exch, VOL_DISK_INFO, sid, &dcnt, &ltype,
+	    &flags);
 	async_exchange_end(exch);
 
@@ -204,4 +205,5 @@
 	vinfo->dcnt = (label_disk_cnt_t)dcnt;
 	vinfo->ltype = (label_type_t)ltype;
+	vinfo->flags = (label_flags_t)flags;
 	return EOK;
 }
