diff --git a/pvmfw/src/gpt.rs b/pvmfw/src/gpt.rs
index 1060460..06bf994 100644
--- a/pvmfw/src/gpt.rs
+++ b/pvmfw/src/gpt.rs
@@ -103,7 +103,7 @@
 
     fn new(mut device: VirtIOBlk) -> Result<Self> {
         let mut blk = [0; Self::LBA_SIZE];
-        device.read_block(Header::LBA, &mut blk).map_err(Error::FailedRead)?;
+        device.read_blocks(Header::LBA, &mut blk).map_err(Error::FailedRead)?;
         let header = Header::read_from_prefix(blk.as_slice()).unwrap();
         if !header.is_valid() {
             return Err(Error::InvalidHeader);
@@ -145,11 +145,11 @@
     }
 
     fn read_block(&mut self, index: usize, blk: &mut [u8]) -> Result<()> {
-        self.device.read_block(index, blk).map_err(Error::FailedRead)
+        self.device.read_blocks(index, blk).map_err(Error::FailedRead)
     }
 
     fn write_block(&mut self, index: usize, blk: &[u8]) -> Result<()> {
-        self.device.write_block(index, blk).map_err(Error::FailedWrite)
+        self.device.write_blocks(index, blk).map_err(Error::FailedWrite)
     }
 }
 
diff --git a/vmbase/example/src/pci.rs b/vmbase/example/src/pci.rs
index 26bc29b..b838539 100644
--- a/vmbase/example/src/pci.rs
+++ b/vmbase/example/src/pci.rs
@@ -78,7 +78,7 @@
             assert_eq!(blk.capacity(), EXPECTED_SECTOR_COUNT as u64);
             let mut data = [0; SECTOR_SIZE_BYTES * EXPECTED_SECTOR_COUNT];
             for i in 0..EXPECTED_SECTOR_COUNT {
-                blk.read_block(i, &mut data[i * SECTOR_SIZE_BYTES..(i + 1) * SECTOR_SIZE_BYTES])
+                blk.read_blocks(i, &mut data[i * SECTOR_SIZE_BYTES..(i + 1) * SECTOR_SIZE_BYTES])
                     .expect("Failed to read block device.");
             }
             for (i, chunk) in data.chunks(size_of::<u32>()).enumerate() {
@@ -89,7 +89,7 @@
         1 => {
             assert_eq!(blk.capacity(), 0);
             let mut data = [0; SECTOR_SIZE_BYTES];
-            assert_eq!(blk.read_block(0, &mut data), Err(Error::IoError));
+            assert_eq!(blk.read_blocks(0, &mut data), Err(Error::IoError));
         }
         _ => panic!("Unexpected VirtIO block device index {}.", index),
     }
