diff options
Diffstat (limited to 'libtreefs/trans-start.c')
-rw-r--r-- | libtreefs/trans-start.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/libtreefs/trans-start.c b/libtreefs/trans-start.c deleted file mode 100644 index b27c38f4..00000000 --- a/libtreefs/trans-start.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Starting a passive translator - - Copyright (C) 1994, 1995, 1999 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2, or (at - your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#include "treefs.h" - -#include <fcntl.h> - -int fshelp_transboot_port_type = PT_TRANSBOOT; - -/* Start the translator TRANS (of length TRANS_LEN) on NODE, which should be - locked, and will be unlocked when this function returns. PARENT_PORT is - a send right to use as the parent port passed to the translator. */ -error_t -_treefs_node_start_translator (struct treefs_node *node, - char *trans, unsigned trans_len, - file_t parent_port) -{ - error_t err; - int mode = O_READ | O_EXEC; - struct treefs_auth *auth; - file_t node_port; - uid_t uid, gid; - - err = treefs_node_get_trans_auth (node, &auth); - if (err) - return err; - - if (!node->fsys->readonly && treefs_node_type (node) == S_IFREG) - mode |= O_WRITE; - - /* Create the REALNODE port for the new filesystem. */ - node_port = treefs_node_make_right (node, mode, parent_port, auth); - mach_port_insert_right (mach_task_self (), node_port, node_port, - MACH_MSG_TYPE_MAKE_SEND); - - - pthread_mutex_unlock (&node->lock); - - /* XXXX Change libfshelp so that it take more than 1 uid/gid? */ - uid = auth->nuids > 0 ? auth->uids[0] : -1; - gid = auth->ngids > 0 ? auth->gids[0] : -1; - - /* XXX this should use fshelp_start_translator_long. */ - err = - fshelp_start_translator (&node->active_trans, NULL, trans, trans_len, - parent_port, node_port, uid, gid); - - treefs_node_auth_unref (node, auth); - - return err; -} |