+long vs_reboot(unsigned int cmd, void __user * arg)
+{
+ struct vx_info *vxi = current->vx_info;
+ long ret = 0;
+
+ vxdprintk(VXD_CBIT(misc, 5),
+ "vs_reboot(%p[#%d],%d)",
+ vxi, vxi?vxi->vx_id:0, cmd);
+
+ ret = vs_reboot_helper(vxi, cmd, arg);
+ if (ret)
+ return ret;
+
+ vxi->reboot_cmd = cmd;
+ if (vx_info_flags(vxi, VXF_REBOOT_KILL, 0)) {
+ switch (cmd) {
+ case LINUX_REBOOT_CMD_RESTART:
+ case LINUX_REBOOT_CMD_HALT:
+ case LINUX_REBOOT_CMD_POWER_OFF:
+ vx_info_kill(vxi, 0, SIGKILL);
+ vx_info_kill(vxi, 1, SIGKILL);
+ default:
+ break;
+ }
+ }
+ return 0;
+}
+
+