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=de9e27feb6648f76b77b3af5012adae22db4a1fe;hp=4813eb8cf8338b1db0f425aa289d4c510440ab4b;hpb=f4c4151b7eadb9ede5056cc2f0f62ea41d0e1cde;p=util-vserver.git diff --git a/util-vserver/lib/syscall_getvxinfo-v13.hc b/util-vserver/lib/syscall_getvxinfo-v13.hc index 4813eb8..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(VC_CMD(VINFO, 5,0), 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; + } }