rio: include handle size in ioctl datalen

Change-Id: I09ba469647051d6644c822add2501bb4a4f803af
diff --git a/src/syscall/mx/mxio/rio/client.go b/src/syscall/mx/mxio/rio/client.go
index 564c751..12fbf10 100644
--- a/src/syscall/mx/mxio/rio/client.go
+++ b/src/syscall/mx/mxio/rio/client.go
@@ -305,6 +305,8 @@
 	return ro.Handle[:ro.Hcount], nil
 }
 
+const handleSize = uint32(unsafe.Sizeof(mx.Handle(0)))
+
 func (r *RemoteIO) IoctlSetHandle(op uint32, in mx.Handle) error {
 	if mxio.IoctlKind(op) != mxio.IoctlKindSetHandle {
 		return mx.Error{Status: mx.ErrInvalidArgs, Text: "RemoteIO"}
@@ -313,6 +315,7 @@
 	msg.SetOp(OpIoctlOneHandle)
 	msg.Handle[0] = in
 	msg.Hcount = 1
+	msg.Datalen = handleSize
 	msg.SetIoctlOp(op)
 
 	if _, err := r.txn(&msg); err != nil {
@@ -328,7 +331,6 @@
 	}
 	msg.SetOp(OpIoctl)
 	msg.Datalen = uint32(len(in))
-	const handleSize = uint32(unsafe.Sizeof(mx.Handle(0)))
 	switch mxio.IoctlKind(op) {
 	case mxio.IoctlKindGetHandle:
 		msg.Arg = int32(handleSize)