X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Fcreateskeleton-full.hc;h=d1a079369e3744e97eb51379fb6cb37c84099b61;hb=3eb1b2279739d0f16391a3724a9897c686f030d3;hp=0b46186e947f4d1dfa74dc9dfe1e178689c22fc4;hpb=9f52547ae6ad8bde3d17856480453498e4bd0ab1;p=util-vserver.git diff --git a/util-vserver/lib/createskeleton-full.hc b/util-vserver/lib/createskeleton-full.hc index 0b46186..d1a0793 100644 --- a/util-vserver/lib/createskeleton-full.hc +++ b/util-vserver/lib/createskeleton-full.hc @@ -24,12 +24,12 @@ #define CONCAT_TWO_ARGS(BUF, LHS,RHS) \ size_t BUF ## l1 = strlen(LHS); \ size_t BUF ## l2 = strlen(RHS); \ - char BUF[BUF ## l1 + BUF ## l2 + 2]; \ + char BUF[BUF##l1 + BUF##l2 + 2]; \ \ - memcpy(BUF, LHS, BUF ## l1 + 1); \ - if (BUF ## l2>0) { \ - memcpy(BUF+BUF ## l1, "/", BUF ## l1); \ - memcpy(BUF+BUF ## l1+1, RHS, BUF ## l2+1); \ + memcpy(BUF, LHS, BUF##l1 + 1); \ + if (BUF##l2 > 0) { \ + BUF[ BUF##l1 ] = '/'; \ + memcpy(BUF+ BUF##l1 + 1, RHS, BUF##l2 + 1); \ } static inline int @@ -42,12 +42,9 @@ mkdir2(char const *lhs, char const *rhs, int mode) static inline int setIAttr2(char const *lhs, char const *rhs, int flags) { - struct stat st; CONCAT_TWO_ARGS(buf, lhs, rhs); - if (stat(buf, &st)==-1) return -1; - return vc_set_iattr_compat(buf, st.st_dev, st.st_ino, - 0, flags, VC_IMMUTABLE_ALL, 0); + return vc_set_iattr(buf, 0, flags, VC_IMMUTABLE_ALL); } static inline int @@ -76,18 +73,6 @@ vc_createSkeleton_full(char const *id, char const *name, int flags) return -1; for (;;) { - char const *basedir = CONFDIR "/.defaults/run.rev"; - - if (!utilvserver_isDirectory(basedir, true)) basedir = DEFAULT_PKGSTATEREVDIR; - if (!utilvserver_isDirectory(basedir, true)) break; - - if (symlink2(basedir, "", id, "run.rev")==-1) - return -1; - - break; - } - - for (;;) { char const *basedir = CONFDIR "/.defaults/run"; if (!utilvserver_isDirectory(basedir, true)) basedir = DEFAULT_PKGSTATEDIR;