aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-12-17 20:14:01 -0500
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:03:58 -0400
commitbe20aa9dbadc8c06283784ee12bbc0d97dea3418 (patch)
tree52bd8b7e21b36d10dbb48f8b163eea992c9cfd4a /fs/btrfs/ctree.h
parentb6cda9bcb4df7544c67fc3548a53bc1607d59f46 (diff)
Btrfs: Add mount option to turn off data cow
A number of workloads do not require copy on write data or checksumming. mount -o nodatasum to disable checksums and -o nodatacow to disable both copy on write and checksumming. In nodatacow mode, copy on write is still performed when a given extent is under snapshot. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r--fs/btrfs/ctree.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 5e255cabfd10..b51b021fff85 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -431,6 +431,7 @@ struct btrfs_root {
431#define BTRFS_STRING_ITEM_KEY 253 431#define BTRFS_STRING_ITEM_KEY 253
432 432
433#define BTRFS_MOUNT_NODATASUM 0x1 433#define BTRFS_MOUNT_NODATASUM 0x1
434#define BTRFS_MOUNT_NODATACOW 0x2
434 435
435#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) 436#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
436#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) 437#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
@@ -915,6 +916,9 @@ static inline u32 btrfs_level_size(struct btrfs_root *root, int level) {
915 btrfs_item_offset_nr(leaf, slot))) 916 btrfs_item_offset_nr(leaf, slot)))
916 917
917/* extent-tree.c */ 918/* extent-tree.c */
919u32 btrfs_count_snapshots_in_path(struct btrfs_root *root,
920 struct btrfs_path *count_path,
921 u64 first_extent);
918int btrfs_extent_post_op(struct btrfs_trans_handle *trans, 922int btrfs_extent_post_op(struct btrfs_trans_handle *trans,
919 struct btrfs_root *root); 923 struct btrfs_root *root);
920int btrfs_copy_pinned(struct btrfs_root *root, struct extent_map_tree *copy); 924int btrfs_copy_pinned(struct btrfs_root *root, struct extent_map_tree *copy);
@@ -974,6 +978,10 @@ int btrfs_cow_block(struct btrfs_trans_handle *trans,
974 struct btrfs_root *root, struct extent_buffer *buf, 978 struct btrfs_root *root, struct extent_buffer *buf,
975 struct extent_buffer *parent, int parent_slot, 979 struct extent_buffer *parent, int parent_slot,
976 struct extent_buffer **cow_ret); 980 struct extent_buffer **cow_ret);
981int btrfs_copy_root(struct btrfs_trans_handle *trans,
982 struct btrfs_root *root,
983 struct extent_buffer *buf,
984 struct extent_buffer **cow_ret, u64 new_root_objectid);
977int btrfs_extend_item(struct btrfs_trans_handle *trans, struct btrfs_root 985int btrfs_extend_item(struct btrfs_trans_handle *trans, struct btrfs_root
978 *root, struct btrfs_path *path, u32 data_size); 986 *root, struct btrfs_path *path, u32 data_size);
979int btrfs_truncate_item(struct btrfs_trans_handle *trans, 987int btrfs_truncate_item(struct btrfs_trans_handle *trans,