Add --immutable, --~immutable and --!immutable.
authorDaniel Hokka Zakrisson <daniel@hozac.com>
Tue, 19 Dec 2006 19:18:12 +0000 (19:18 +0000)
committerDaniel Hokka Zakrisson <daniel@hozac.com>
Tue, 19 Dec 2006 19:18:12 +0000 (19:18 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2431 94cd875c-1c1d-0410-91d2-eb244daf1a30

src/fstool.c
src/fstool.h
src/setattr.c

index 63fb044..d1df02a 100644 (file)
@@ -196,25 +196,27 @@ int main(int argc, char *argv[])
       case CMD_HELP            :  showHelp(1, argv[0], 0);
       case CMD_VERSION         :  showVersion();
       case CMD_IMMU            :  args.set_mask |= VC_IATTR_IMMUTABLE; /*@fallthrough@*/
-      case CMD_IMMUX           :  args.set_mask |= VC_IATTR_IUNLINK; break;
-      case CMD_ADMIN           :  args.set_mask |= VC_IATTR_ADMIN;   break;
-      case CMD_WATCH           :  args.set_mask |= VC_IATTR_WATCH;   break;
-      case CMD_HIDE            :  args.set_mask |= VC_IATTR_HIDE;    break;
-      case CMD_BARRIER         :  args.set_mask |= VC_IATTR_BARRIER; break;
+      case CMD_IMMUX           :  args.set_mask |= VC_IATTR_IUNLINK;   break;
+      case CMD_IMMUTABLE       :  args.set_mask |= VC_IATTR_IMMUTABLE; break;
+      case CMD_ADMIN           :  args.set_mask |= VC_IATTR_ADMIN;     break;
+      case CMD_WATCH           :  args.set_mask |= VC_IATTR_WATCH;     break;
+      case CMD_HIDE            :  args.set_mask |= VC_IATTR_HIDE;      break;
+      case CMD_BARRIER         :  args.set_mask |= VC_IATTR_BARRIER;   break;
       case CMD_UNSET_IMMU      :  args.del_mask |= VC_IATTR_IMMUTABLE; /*@fallthrough@*/
-      case CMD_UNSET_IMMUX     :  args.del_mask |= VC_IATTR_IUNLINK; break;
-      case CMD_UNSET_ADMIN     :  args.del_mask |= VC_IATTR_ADMIN;   break;
-      case CMD_UNSET_WATCH     :  args.del_mask |= VC_IATTR_WATCH;   break;
-      case CMD_UNSET_HIDE      :  args.del_mask |= VC_IATTR_HIDE;    break;
-      case CMD_UNSET_BARRIER   :  args.del_mask |= VC_IATTR_BARRIER; break;
-      case 'R'                 :  args.do_recurse     = true;  break;
-      case 'a'                 :  args.do_display_dot = true;  break;
-      case 'd'                 :  args.do_display_dir = true;  break;
-      case 'n'                 :  args.do_mapping     = false; break;
-      case 's'                 :  args.do_set         = true;  break;
-      case 'u'                 :  args.do_unset       = true;  break;
-      case 'c'                 :  args.ctx_str        = optarg; break;
-      case 'x'                 :  args.local_fs       = true;   break;
+      case CMD_UNSET_IMMUX     :  args.del_mask |= VC_IATTR_IUNLINK;   break;
+      case CMD_UNSET_IMMUTABLE :  args.del_mask |= VC_IATTR_IMMUTABLE; break;
+      case CMD_UNSET_ADMIN     :  args.del_mask |= VC_IATTR_ADMIN;     break;
+      case CMD_UNSET_WATCH     :  args.del_mask |= VC_IATTR_WATCH;     break;
+      case CMD_UNSET_HIDE      :  args.del_mask |= VC_IATTR_HIDE;      break;
+      case CMD_UNSET_BARRIER   :  args.del_mask |= VC_IATTR_BARRIER;   break;
+      case 'R'                 :  args.do_recurse     = true;          break;
+      case 'a'                 :  args.do_display_dot = true;          break;
+      case 'd'                 :  args.do_display_dir = true;          break;
+      case 'n'                 :  args.do_mapping     = false;         break;
+      case 's'                 :  args.do_set         = true;          break;
+      case 'u'                 :  args.do_unset       = true;          break;
+      case 'c'                 :  args.ctx_str        = optarg;        break;
+      case 'x'                 :  args.local_fs       = true;          break;
       default          :
        WRITE_MSG(2, "Try '");
        WRITE_STR(2, argv[0]);
index 90f5b67..4705dfe 100644 (file)
@@ -39,6 +39,7 @@
 #define CMD_UNSET_HIDE         0x8023
 #define CMD_UNSET_BARRIER      0x8024
 #define CMD_UNSET_IMMUX                0x8025
+#define CMD_UNSET_IMMUTABLE    0x8026
 
 
 struct stat;
index 4513ac9..7f4c2ad 100644 (file)
@@ -58,6 +58,9 @@ CMDLINE_OPTIONS[] = {
   { "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 },
+  { "immutable",   no_argument, 0, CMD_IMMUTABLE },
+  { "~immutable",  no_argument, 0, CMD_UNSET_IMMUTABLE },
+  { "!immutable",  no_argument, 0, CMD_UNSET_IMMUTABLE },
   { 0,0,0,0 }
 };