X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvmemctrl.c;h=6a4f560e02a23a3e129a35477e63ba12c08557d9;hb=148ab3024621f97b9cf95091657db2448098bc66;hp=46a5e63d80096de81c9e905830b3aec1423785d1;hpb=5ee5e9157572fe9047a12be75af60fa32f0a60a8;p=util-vserver.git diff --git a/src/vmemctrl.c b/src/vmemctrl.c index 46a5e63..6a4f560 100644 --- a/src/vmemctrl.c +++ b/src/vmemctrl.c @@ -65,8 +65,15 @@ struct Arguments { int64_t badness; bool do_set; bool do_get; + uint32_t mask; }; +static inline int +hasArg(struct Arguments *args, uint32_t arg) +{ + return (args->mask & arg) == arg; +} + static void showHelp(int fd, char const *cmd, int res) { @@ -94,7 +101,8 @@ showVersion() static inline void doset(struct Arguments *args) { - if (vc_set_badness(args->xid, args->badness) == -1) { + if (hasArg(args, CMD_BADNESS) && + vc_set_badness(args->xid, args->badness) == -1) { perror(ENSC_WRAPPERS_PREFIX "vc_set_badness()"); exit(wrapper_exit_code); } @@ -123,6 +131,7 @@ int main (int argc, char *argv[]) .do_get = false, .xid = VC_NOCTX, .badness = 0, + .mask = 0, }; while (1) { @@ -153,6 +162,7 @@ int main (int argc, char *argv[]) exit(wrapper_exit_code); break; } + args.mask |= c; } if (args.xid == VC_NOCTX) args.xid = Evc_get_task_xid(0);