#define VC_IATTR_BARRIER 0x00010000u
#define VC_IATTR_IUNLINK 0x00020000u
#define VC_IATTR_IMMUTABLE 0x00040000u
+#define VC_IATTR_COW 0x00080000u
// the flags
case CMD_HIDE : args.set_mask |= VC_IATTR_HIDE; break;
case CMD_BARRIER : args.set_mask |= VC_IATTR_BARRIER; break;
case CMD_WRITE : args.set_mask |= VC_IATTR_WRITE; break;
+ case CMD_COW : args.set_mask |= VC_IATTR_COW; 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_IMMUTABLE : args.del_mask |= VC_IATTR_IMMUTABLE; break;
case CMD_UNSET_HIDE : args.del_mask |= VC_IATTR_HIDE; break;
case CMD_UNSET_BARRIER : args.del_mask |= VC_IATTR_BARRIER; break;
case CMD_UNSET_WRITE : args.del_mask |= VC_IATTR_WRITE; break;
+ case CMD_UNSET_COW : args.del_mask |= VC_IATTR_COW; break;
case 'R' : args.do_recurse = true; break;
case 'a' : args.do_display_dot = true; break;
case 'd' : args.do_display_dir = true; break;
#define CMD_BARRIER 0x8014
#define CMD_IMMUX 0x8015
#define CMD_WRITE 0x8016
+#define CMD_COW 0x8017
#define CMD_UNSET_IMMU 0x8020
#define CMD_UNSET_ADMIN 0x8021
#define CMD_UNSET_WATCH 0x8022
#define CMD_UNSET_IMMUX 0x8025
#define CMD_UNSET_IMMUTABLE 0x8026
#define CMD_UNSET_WRITE 0x8027
+#define CMD_UNSET_COW 0x8028
struct stat;
{ "write", no_argument, 0, CMD_WRITE },
{ "~write", no_argument, 0, CMD_UNSET_WRITE },
{ "!write", no_argument, 0, CMD_UNSET_WRITE },
+ { "cow", no_argument, 0, CMD_COW },
+ { "~cow", no_argument, 0, CMD_UNSET_COW },
+ { "!cow", no_argument, 0, CMD_UNSET_COW },
{ 0,0,0,0 }
};
WRITE_MSG(fd, "Usage: ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " [-Rx] [--[~](iunlink|admin|watch|hide|barrier|iunlink-but-not-immutable|immutable|write)]* [--] <file>+\n\n"
+ " [-Rx] [--[~](iunlink|admin|watch|hide|barrier|iunlink-but-not-immutable|immutable|write|cow)]* [--] <file>+\n\n"
" Options:\n"
" -R ... recurse through directories\n"
" -x ... do not cross filesystems\n\n"