X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fsrc%2Fsetattr.c;h=4513ac9ce9c038ae3fe2d2a9aa772c8cc49ee73b;hb=a917f24ef7b003dcef54a3db2644cf9cb4bc2db2;hp=db2aef01cbe956c30e547a06c69a6996b313f877;hpb=e98c668cfc56e080cb083eee269ed2fbbc3ffa9f;p=util-vserver.git diff --git a/util-vserver/src/setattr.c b/util-vserver/src/setattr.c index db2aef0..4513ac9 100644 --- a/util-vserver/src/setattr.c +++ b/util-vserver/src/setattr.c @@ -44,11 +44,20 @@ CMDLINE_OPTIONS[] = { { "hide", no_argument, 0, CMD_HIDE }, { "barrier", no_argument, 0, CMD_BARRIER }, { "~iunlink", no_argument, 0, CMD_UNSET_IMMU }, + { "!iunlink", no_argument, 0, CMD_UNSET_IMMU }, { "~immu", no_argument, 0, CMD_UNSET_IMMU }, + { "!immu", no_argument, 0, CMD_UNSET_IMMU }, { "~admin", no_argument, 0, CMD_UNSET_ADMIN }, + { "!admin", no_argument, 0, CMD_UNSET_ADMIN }, { "~watch", no_argument, 0, CMD_UNSET_WATCH }, + { "!watch", no_argument, 0, CMD_UNSET_WATCH }, { "~hide", no_argument, 0, CMD_UNSET_HIDE }, + { "!hide", no_argument, 0, CMD_UNSET_HIDE }, { "~barrier", no_argument, 0, CMD_UNSET_BARRIER }, + { "!barrier", no_argument, 0, CMD_UNSET_BARRIER }, + { "iunlink-but-not-immutable", no_argument, 0, CMD_IMMUX }, + { "~iunlink-but-not-immutable", no_argument, 0, CMD_UNSET_IMMUX }, + { "!iunlink-but-not-immutable", no_argument, 0, CMD_UNSET_IMMUX }, { 0,0,0,0 } }; @@ -60,7 +69,7 @@ showHelp(int fd, char const *cmd, int res) WRITE_MSG(fd, "Usage: "); WRITE_STR(fd, cmd); WRITE_MSG(fd, - " [-Rx] [--[~]iunlink] [--[~]admin] [--[~]watch] [--[~]hide] [--] +\n\n" + " [-Rx] [--[~](iunlink|admin|watch|hide|barrier|iunlink-but-not-immutable)]* [--] +\n\n" " Options:\n" " -R ... recurse through directories\n" " -x ... do not cross filesystems\n\n" @@ -87,18 +96,17 @@ fixupParams(struct Arguments * args, int argc) exit(1); } - args->do_display_dir = false; + args->do_display_dir = !args->do_recurse; + args->do_display_dot = true; } bool -handleFile(char const *name, char const * display_name, - struct stat const *exp_st) +handleFile(char const *name, char const * display_name) { - int rc = vc_set_iattr_compat(name, exp_st->st_dev, exp_st->st_ino, - 0, - global_args->set_mask & ~global_args->del_mask, - global_args->set_mask | global_args->del_mask, - &exp_st->st_mode); + int rc = vc_set_iattr(name, + 0, + global_args->set_mask & ~global_args->del_mask, + global_args->set_mask | global_args->del_mask); if (rc==-1) { perror(display_name);