diff options
author | Yan <yanzheng@21cn.com> | 2008-01-14 13:35:00 -0500 |
---|---|---|
committer | David Woodhouse <dwmw2@hera.kernel.org> | 2008-01-14 13:35:00 -0500 |
commit | 3a3123bfc1074ee81c8cb44938e4b50a044898b9 (patch) | |
tree | 73d8a92132b280a7a1583a9a8915ba095064706f | |
parent | 62a72e7d9ada7a986dd299622b2233fe2e386003 (diff) |
Add readonly inode flag
This patch adds readonly inode flag support. A file with this flag
can't be modified, but can be deleted.
-rw-r--r-- | convert.c | 3 | ||||
-rw-r--r-- | ctree.h | 6 |
2 files changed, 6 insertions, 3 deletions
@@ -1163,7 +1163,8 @@ static int create_ext2_image(struct btrfs_root *root, ext2_filsys ext2_fs, btrfs_set_stack_inode_nlink(&btrfs_inode, 1); btrfs_set_stack_inode_nblocks(&btrfs_inode, 0); btrfs_set_stack_inode_mode(&btrfs_inode, S_IFREG | 0400); - btrfs_set_stack_inode_flags(&btrfs_inode, BTRFS_INODE_NODATASUM); + btrfs_set_stack_inode_flags(&btrfs_inode, BTRFS_INODE_NODATASUM | + BTRFS_INODE_READONLY); btrfs_init_path(&path); trans = btrfs_start_transaction(root, 1); BUG_ON(!trans); @@ -418,8 +418,10 @@ struct btrfs_root { /* * Inode flags */ -#define BTRFS_INODE_NODATASUM 0x1 -#define BTRFS_INODE_NODATACOW 0x2 +#define BTRFS_INODE_NODATASUM (1 << 0) +#define BTRFS_INODE_NODATACOW (1 << 1) +#define BTRFS_INODE_READONLY (1 << 2) + #define read_eb_member(eb, ptr, type, member, result) ( \ read_extent_buffer(eb, (char *)(result), \ ((unsigned long)(ptr)) + \ |