commit-hurd
[Top][All Lists]
Advanced

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

[hurd] 40/70: libtrivfs: register libtrivfs-based translators as importa


From: Samuel Thibault
Subject: [hurd] 40/70: libtrivfs: register libtrivfs-based translators as important
Date: Mon, 16 Sep 2013 07:41:42 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch upstream
in repository hurd.

commit e3c51fc088975f5b74e68a314e8fdfc907ad9640
Author: Justus Winter <address@hidden>
Date:   Thu Aug 15 09:38:01 2013 +0200

    libtrivfs: register libtrivfs-based translators as important
    
    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..4d76d47 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 or because the old proc
+        server is still running, ignore any such errors.  */
+      if (err == EPERM || err == EMIG_BAD_ID)
+       err = 0;
+
+      mach_port_deallocate (mach_task_self (), proc);
+    }
+
   return err;
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

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