diff --git a/metropolis/pkg/blockdev/blockdev.go b/metropolis/pkg/blockdev/blockdev.go
index c7b2875..0e3c6e1 100644
--- a/metropolis/pkg/blockdev/blockdev.go
+++ b/metropolis/pkg/blockdev/blockdev.go
@@ -154,7 +154,8 @@
 	if err := s.inRange(startByte, endByte); err != nil {
 		return err
 	}
-	return s.b.Discard(s.startBlock+startByte, s.startBlock+endByte)
+	offset := s.startBlock * s.b.BlockSize()
+	return s.b.Discard(offset+startByte, offset+endByte)
 }
 
 func (s *Section) OptimalBlockSize() int64 {
@@ -165,7 +166,8 @@
 	if err := s.inRange(startByte, endByte); err != nil {
 		return err
 	}
-	return s.b.Zero(s.startBlock+startByte, s.startBlock+endByte)
+	offset := s.startBlock * s.b.BlockSize()
+	return s.b.Zero(offset+startByte, offset+endByte)
 }
 
 // GenericZero implements software-based zeroing. This can be used to implement
diff --git a/metropolis/pkg/blockdev/blockdev_linux.go b/metropolis/pkg/blockdev/blockdev_linux.go
index b40e5cd..6d87c87 100644
--- a/metropolis/pkg/blockdev/blockdev_linux.go
+++ b/metropolis/pkg/blockdev/blockdev_linux.go
@@ -44,7 +44,7 @@
 	var args [2]uint64
 	var err unix.Errno
 	args[0] = uint64(startByte)
-	args[1] = uint64(endByte)
+	args[1] = uint64(endByte - startByte)
 	if ctrlErr := d.rawConn.Control(func(fd uintptr) {
 		_, _, err = unix.Syscall(unix.SYS_IOCTL, fd, unix.BLKDISCARD, uintptr(unsafe.Pointer(&args[0])))
 	}); ctrlErr != nil {
@@ -67,7 +67,7 @@
 	var args [2]uint64
 	var err error
 	args[0] = uint64(startByte)
-	args[1] = uint64(endByte)
+	args[1] = uint64(endByte - startByte)
 	if ctrlErr := d.rawConn.Control(func(fd uintptr) {
 		// Attempts to leverage discard guarantees to provide extremely quick
 		// metadata-only zeroing.
@@ -215,7 +215,7 @@
 	if errors.Is(err, unix.EOPNOTSUPP) {
 		return errors.ErrUnsupported
 	}
-	if err != unix.Errno(0) {
+	if err != nil {
 		return fmt.Errorf("failed to discard: %w", err)
 	}
 	return nil
