This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / kernel / vserver / namespace.c
index f1c95c4..23bf420 100644 (file)
@@ -3,7 +3,7 @@
  *
  *  Virtual Server: Context Namespace Support
  *
- *  Copyright (C) 2003-2004  Herbert Pötzl
+ *  Copyright (C) 2003-2005  Herbert Pötzl
  *
  *  V0.01  broken out from context.c 0.07
  *  V0.02  added task locking for namespace
 
 #include <linux/config.h>
 #include <linux/utsname.h>
+#include <linux/sched.h>
+#include <linux/vs_context.h>
 #include <linux/vserver/namespace.h>
-#include <linux/vinline.h>
-#include <linux/namespace.h>
+#include <linux/vserver/namespace_cmd.h>
 #include <linux/dcache.h>
+#include <linux/mount.h>
+#include <linux/fs.h>
 
 #include <asm/errno.h>
 #include <asm/uaccess.h>
 
 
-/* virtual host info names */
-
-static char * vx_vhi_name(struct vx_info *vxi, int id)
-{
-       switch (id) {
-               case VHIN_CONTEXT:
-                       return vxi->vx_name;
-               case VHIN_SYSNAME:
-                       return vxi->cvirt.utsname.sysname;
-               case VHIN_NODENAME:
-                       return vxi->cvirt.utsname.nodename;
-               case VHIN_RELEASE:
-                       return vxi->cvirt.utsname.release;
-               case VHIN_VERSION:
-                       return vxi->cvirt.utsname.version;
-               case VHIN_MACHINE:
-                       return vxi->cvirt.utsname.machine;
-               case VHIN_DOMAINNAME:
-                       return vxi->cvirt.utsname.domainname;
-               default:
-                       return NULL;
-       }
-       return NULL;
-}
-
-int vc_set_vhi_name(uint32_t id, void __user *data)
-{
-       struct vx_info *vxi;
-       struct vcmd_vx_vhi_name_v0 vc_data;
-       char *name;
-
-       if (!capable(CAP_SYS_ADMIN))
-               return -EPERM;
-       if (copy_from_user (&vc_data, data, sizeof(vc_data)))
-               return -EFAULT;
-       
-       vxi = locate_vx_info(id);
-       if (!vxi)
-               return -ESRCH;
-       
-       name = vx_vhi_name(vxi, vc_data.field);
-       if (name)
-               memcpy(name, vc_data.name, 65);
-       put_vx_info(vxi);
-       return (name ? 0 : -EFAULT);
-}
-
-int vc_get_vhi_name(uint32_t id, void __user *data)
-{
-       struct vx_info *vxi;
-       struct vcmd_vx_vhi_name_v0 vc_data;
-       char *name;
-
-       if (copy_from_user (&vc_data, data, sizeof(vc_data)))
-               return -EFAULT;
-
-       vxi = locate_vx_info(id);
-       if (!vxi)
-               return -ESRCH;
-
-       name = vx_vhi_name(vxi, vc_data.field);
-       if (!name)
-               goto out_put;
-                       
-       memcpy(vc_data.name, name, 65);
-       if (copy_to_user (data, &vc_data, sizeof(vc_data)))
-               return -EFAULT;
-out_put:
-       put_vx_info(vxi);
-       return (name ? 0 : -EFAULT);
-}
-
 /* namespace functions */
 
 #include <linux/namespace.h>
@@ -144,7 +75,7 @@ int vc_enter_namespace(uint32_t id, void *data)
        old_ns = current->namespace;
        old_fs = current->fs;
        get_namespace(vxi->vx_namespace);
-       current->namespace = vxi->vx_namespace; 
+       current->namespace = vxi->vx_namespace;
        current->fs = fs;
        task_unlock(current);