X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Fsyscall_getvxinfo-v13.hc;h=f4584d8e726a4d81c3cada953f49d51934b29f4b;hb=38fe8b4a2dd28aebf52787c5b65cc79490fa53d3;hp=11bafa651dced7ec40050bfb0ae15ba49da97f4c;hpb=67d67f83ff23702d8712a3f88a4af86e7900a193;p=util-vserver.git diff --git a/util-vserver/lib/syscall_getvxinfo-v13.hc b/util-vserver/lib/syscall_getvxinfo-v13.hc index 11bafa6..f4584d8 100644 --- a/util-vserver/lib/syscall_getvxinfo-v13.hc +++ b/util-vserver/lib/syscall_getvxinfo-v13.hc @@ -23,12 +23,22 @@ static inline ALWAYSINLINE int vc_get_vx_info_v13(xid_t xid, struct vc_vx_info *info) { - struct vcmd_vx_info_v0 res; - int rc = vserver(VCMD_vx_info, xid, &res); - if (rc==-1) return -1; + if (xid==0 || xid==1) { + info->xid = xid; + info->initpid = -1; - info->xid = CTX_KERNEL2USER(res.xid); - info->initpid = res.initpid; + return 0; + } + else { + struct vcmd_vx_info_v0 res; + int rc; - return rc; + rc = vserver(VCMD_vx_info, CTX_USER2KERNEL(xid), &res); + if (rc==-1) return -1; + + info->xid = CTX_KERNEL2USER(res.xid); + info->initpid = res.initpid; + + return rc; + } }