From: Samuel Thibault <samuel.thibault@ens-lyon.org>

Update to the improved memory_object_create_proxy RPC, thus avoiding two RPCs.

Index: hurd-debian/libpager/pager-ro-port.c
===================================================================
--- hurd-debian.orig/libpager/pager-ro-port.c
+++ hurd-debian/libpager/pager-ro-port.c
@@ -29,7 +29,7 @@ pager_create_ro_port (struct pager *p)
   vm_offset_t start = 0;
   vm_size_t len = ~0;
 
-  rw_port = ports_get_send_right (p);
+  rw_port = ports_get_right (p);
   if (!MACH_PORT_VALID (rw_port))
     {
       err = errno;
@@ -38,12 +38,10 @@ pager_create_ro_port (struct pager *p)
 
   err = memory_object_create_proxy (mach_task_self (),
 				    VM_PROT_READ | VM_PROT_EXECUTE,
-				    &rw_port, 1,
+				    &rw_port, MACH_MSG_TYPE_MAKE_SEND, 1,
 				    &offset, 1, &start, 1, &len, 1,
 				    &port);
 
-  mach_port_deallocate (mach_task_self (), rw_port);
-
  out:
   errno = err;
   return port;
Index: hurd-debian/tmpfs/node.c
===================================================================
--- hurd-debian.orig/tmpfs/node.c
+++ hurd-debian/tmpfs/node.c
@@ -572,7 +572,8 @@ diskfs_get_filemap (struct node *np, vm_
       vm_size_t len = ~0;
       err = memory_object_create_proxy (mach_task_self (),
                                         VM_PROT_READ | VM_PROT_EXECUTE,
-                                        &np->dn->u.reg.memobj, 1,
+                                        &np->dn->u.reg.memobj,
+                                        MACH_MSG_TYPE_COPY_SEND, 1,
                                         &offset, 1, &start, 1, &len, 1,
                                         &right);
       if (err)
