bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 10/16] libtrivfs: register libtrivfs-based translators as importa


From: Justus Winter
Subject: [PATCH 10/16] libtrivfs: register libtrivfs-based translators as important
Date: Mon, 5 Aug 2013 12:06:34 +0200

Register libtrivfs-based translators running as root as important
processes at the proc server.

* libtrivfs/startup.c (trivfs_startup): Mark us as important.
---
 libtrivfs/startup.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/libtrivfs/startup.c b/libtrivfs/startup.c
index 86b0f82..e7be67a 100644
--- a/libtrivfs/startup.c
+++ b/libtrivfs/startup.c
@@ -65,5 +65,24 @@ trivfs_startup(mach_port_t bootstrap, int flags,
   if (!err && control)
     *control = fsys;
 
+  /* Mark us as important.  */
+  if (! err)
+    {
+      mach_port_t proc = getproc ();
+      if (proc == MACH_PORT_NULL)
+       /* /hurd/exec uses libtrivfs.  We have no handle to the proc
+          server in /hurd/exec when it does its handshake with the
+          root filesystem, so fail graciously here.  */
+       return 0;
+
+      err = proc_mark_important (proc);
+      /* This might fail due to permissions, ignore any such
+        errors.  */
+      if (err == EPERM)
+       err = 0;
+
+      mach_port_deallocate (mach_task_self (), proc);
+    }
+
   return err;
 }
-- 
1.7.10.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]