[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 11/17] libtrivfs: register libtrivfs-based translators as importa
From: |
Justus Winter |
Subject: |
[PATCH 11/17] libtrivfs: register libtrivfs-based translators as important |
Date: |
Thu, 15 Aug 2013 09:38:01 +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..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;
}
--
1.7.10.4
- [PATCH 04/17] daemons: fix setsid(2) in console-run, (continued)
- [PATCH 06/17] proc: add proc_mark_important server code, Justus Winter, 2013/08/15
- [PATCH 07/17] hurd: add proc_mark_important, Justus Winter, 2013/08/15
- [PATCH 08/17] init: Mark all of inits children and init itself as important, Justus Winter, 2013/08/15
- [PATCH 09/17] libdiskfs: register libdiskfs-based translators as important, Justus Winter, 2013/08/15
- [PATCH 11/17] libtrivfs: register libtrivfs-based translators as important,
Justus Winter <=
- [PATCH 10/17] libnetfs: register libnetfs-based translators as important, Justus Winter, 2013/08/15
- [PATCH 12/17] mach-defpager: register mach-defpager translators as important, Justus Winter, 2013/08/15
- [PATCH 13/17] trans: register symlink translators as important, Justus Winter, 2013/08/15
- [PATCH 15/17] hurd: add proc_{get,set}_code, Justus Winter, 2013/08/15
- [PATCH 16/17] exec: keep track of the range where executable segments are mapped, Justus Winter, 2013/08/15
- [PATCH 14/17] proc: keep track of {start,end}_code, Justus Winter, 2013/08/15
- [PATCH 17/17] Build fixes: Build processUser.o and link against it, Justus Winter, 2013/08/15
[PATCH 1/2] Hurd: make reboot() send messages to both pid 1 and 2, Justus Winter, 2013/08/15