diff options
Diffstat (limited to 'fs/btrfs/ctree.h')
| -rw-r--r-- | fs/btrfs/ctree.h | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 98a873838717..837435ce84ca 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
| @@ -481,7 +481,7 @@ struct btrfs_shared_data_ref { | |||
| 481 | 481 | ||
| 482 | struct btrfs_extent_inline_ref { | 482 | struct btrfs_extent_inline_ref { |
| 483 | u8 type; | 483 | u8 type; |
| 484 | u64 offset; | 484 | __le64 offset; |
| 485 | } __attribute__ ((__packed__)); | 485 | } __attribute__ ((__packed__)); |
| 486 | 486 | ||
| 487 | /* old style backrefs item */ | 487 | /* old style backrefs item */ |
| @@ -689,6 +689,7 @@ struct btrfs_space_info { | |||
| 689 | struct list_head block_groups; | 689 | struct list_head block_groups; |
| 690 | spinlock_t lock; | 690 | spinlock_t lock; |
| 691 | struct rw_semaphore groups_sem; | 691 | struct rw_semaphore groups_sem; |
| 692 | atomic_t caching_threads; | ||
| 692 | }; | 693 | }; |
| 693 | 694 | ||
| 694 | /* | 695 | /* |
| @@ -707,6 +708,9 @@ struct btrfs_free_cluster { | |||
| 707 | /* first extent starting offset */ | 708 | /* first extent starting offset */ |
| 708 | u64 window_start; | 709 | u64 window_start; |
| 709 | 710 | ||
| 711 | /* if this cluster simply points at a bitmap in the block group */ | ||
| 712 | bool points_to_bitmap; | ||
| 713 | |||
| 710 | struct btrfs_block_group_cache *block_group; | 714 | struct btrfs_block_group_cache *block_group; |
| 711 | /* | 715 | /* |
| 712 | * when a cluster is allocated from a block group, we put the | 716 | * when a cluster is allocated from a block group, we put the |
| @@ -716,24 +720,37 @@ struct btrfs_free_cluster { | |||
| 716 | struct list_head block_group_list; | 720 | struct list_head block_group_list; |
| 717 | }; | 721 | }; |
| 718 | 722 | ||
| 723 | enum btrfs_caching_type { | ||
| 724 | BTRFS_CACHE_NO = 0, | ||
| 725 | BTRFS_CACHE_STARTED = 1, | ||
| 726 | BTRFS_CACHE_FINISHED = 2, | ||
| 727 | }; | ||
| 728 | |||
| 719 | struct btrfs_block_group_cache { | 729 | struct btrfs_block_group_cache { |
| 720 | struct btrfs_key key; | 730 | struct btrfs_key key; |
| 721 | struct btrfs_block_group_item item; | 731 | struct btrfs_block_group_item item; |
| 732 | struct btrfs_fs_info *fs_info; | ||
| 722 | spinlock_t lock; | 733 | spinlock_t lock; |
| 723 | struct mutex cache_mutex; | ||
| 724 | u64 pinned; | 734 | u64 pinned; |
| 725 | u64 reserved; | 735 | u64 reserved; |
| 726 | u64 flags; | 736 | u64 flags; |
| 727 | int cached; | 737 | u64 sectorsize; |
| 738 | int extents_thresh; | ||
| 739 | int free_extents; | ||
| 740 | int total_bitmaps; | ||
| 728 | int ro; | 741 | int ro; |
| 729 | int dirty; | 742 | int dirty; |
| 730 | 743 | ||
| 744 | /* cache tracking stuff */ | ||
| 745 | wait_queue_head_t caching_q; | ||
| 746 | int cached; | ||
| 747 | |||
| 731 | struct btrfs_space_info *space_info; | 748 | struct btrfs_space_info *space_info; |
| 732 | 749 | ||
| 733 | /* free space cache stuff */ | 750 | /* free space cache stuff */ |
| 734 | spinlock_t tree_lock; | 751 | spinlock_t tree_lock; |
| 735 | struct rb_root free_space_bytes; | ||
| 736 | struct rb_root free_space_offset; | 752 | struct rb_root free_space_offset; |
| 753 | u64 free_space; | ||
| 737 | 754 | ||
| 738 | /* block group cache stuff */ | 755 | /* block group cache stuff */ |
| 739 | struct rb_node cache_node; | 756 | struct rb_node cache_node; |
| @@ -808,6 +825,7 @@ struct btrfs_fs_info { | |||
| 808 | struct mutex drop_mutex; | 825 | struct mutex drop_mutex; |
| 809 | struct mutex volume_mutex; | 826 | struct mutex volume_mutex; |
| 810 | struct mutex tree_reloc_mutex; | 827 | struct mutex tree_reloc_mutex; |
| 828 | struct rw_semaphore extent_commit_sem; | ||
| 811 | 829 | ||
| 812 | /* | 830 | /* |
| 813 | * this protects the ordered operations list only while we are | 831 | * this protects the ordered operations list only while we are |
| @@ -1988,6 +2006,7 @@ void btrfs_delalloc_reserve_space(struct btrfs_root *root, struct inode *inode, | |||
| 1988 | u64 bytes); | 2006 | u64 bytes); |
| 1989 | void btrfs_delalloc_free_space(struct btrfs_root *root, struct inode *inode, | 2007 | void btrfs_delalloc_free_space(struct btrfs_root *root, struct inode *inode, |
| 1990 | u64 bytes); | 2008 | u64 bytes); |
| 2009 | void btrfs_free_pinned_extents(struct btrfs_fs_info *info); | ||
| 1991 | /* ctree.c */ | 2010 | /* ctree.c */ |
| 1992 | int btrfs_bin_search(struct extent_buffer *eb, struct btrfs_key *key, | 2011 | int btrfs_bin_search(struct extent_buffer *eb, struct btrfs_key *key, |
| 1993 | int level, int *slot); | 2012 | int level, int *slot); |
