From 7f353bd2735388d987b0a9afb484ae044639cd33 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 8 Oct 2009 17:07:24 +0000 Subject: [PATCH] Add cow to setattr. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2852 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- lib/vserver.h | 1 + src/fstool.c | 2 ++ src/fstool.h | 2 ++ src/setattr.c | 5 ++++- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/vserver.h b/lib/vserver.h index 2224be7..e8dfb24 100644 --- a/lib/vserver.h +++ b/lib/vserver.h @@ -160,6 +160,7 @@ #define VC_IATTR_BARRIER 0x00010000u #define VC_IATTR_IUNLINK 0x00020000u #define VC_IATTR_IMMUTABLE 0x00040000u +#define VC_IATTR_COW 0x00080000u // the flags diff --git a/src/fstool.c b/src/fstool.c index 5188393..fa701ee 100644 --- a/src/fstool.c +++ b/src/fstool.c @@ -204,6 +204,7 @@ int main(int argc, char *argv[]) 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; @@ -212,6 +213,7 @@ int main(int argc, char *argv[]) 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; diff --git a/src/fstool.h b/src/fstool.h index dfc4822..e8505cd 100644 --- a/src/fstool.h +++ b/src/fstool.h @@ -34,6 +34,7 @@ #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 @@ -42,6 +43,7 @@ #define CMD_UNSET_IMMUX 0x8025 #define CMD_UNSET_IMMUTABLE 0x8026 #define CMD_UNSET_WRITE 0x8027 +#define CMD_UNSET_COW 0x8028 struct stat; diff --git a/src/setattr.c b/src/setattr.c index 60b0468..8063754 100644 --- a/src/setattr.c +++ b/src/setattr.c @@ -64,6 +64,9 @@ CMDLINE_OPTIONS[] = { { "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 } }; @@ -75,7 +78,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|barrier|iunlink-but-not-immutable|immutable|write)]* [--] +\n\n" + " [-Rx] [--[~](iunlink|admin|watch|hide|barrier|iunlink-but-not-immutable|immutable|write|cow)]* [--] +\n\n" " Options:\n" " -R ... recurse through directories\n" " -x ... do not cross filesystems\n\n" -- 1.8.1.5