[PATCH 09/16] libnetfs: register libnetfs-based translators as important
Register libnetfs-based translators running as root as important
processes at the proc server.
* libnetfs/init-startup.c (netfs_startup): Mark us as important.
---
libnetfs/init-startup.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/libnetfs/init-startup.c b/libnetfs/init-startup.c
index 2e0f43a..fadea2d 100644
--- a/libnetfs/init-startup.c
+++ b/libnetfs/init-startup.c
@@ -48,5 +48,18 @@ netfs_startup (mach_port_t bootstrap, int flags)
mach_port_deallocate (mach_task_self (), bootstrap);
+ /* Mark us as important. */
+ mach_port_t proc = getproc ();
+ if (proc == MACH_PORT_NULL)
+ error (12, err, "Translator startup failure: getproc");
+
+ err = proc_mark_important (proc);
+
+ /* This might fail due to permissions, ignore any such errors. */
+ if (err && err != EPERM)
+ error (13, err, "Translator startup failure: proc_mark_important");
+
+ mach_port_deallocate (mach_task_self (), proc);
+
return realnode;
}
--
1.7.10.4
Reply to: