diff options
Diffstat (limited to 'fs/btrfs/ctree.h')
| -rw-r--r-- | fs/btrfs/ctree.h | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 80599b4e42bd..444b3e9b92a4 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
| @@ -675,21 +675,28 @@ struct btrfs_space_info { | |||
| 675 | current allocations */ | 675 | current allocations */ |
| 676 | u64 bytes_readonly; /* total bytes that are read only */ | 676 | u64 bytes_readonly; /* total bytes that are read only */ |
| 677 | u64 bytes_super; /* total bytes reserved for the super blocks */ | 677 | u64 bytes_super; /* total bytes reserved for the super blocks */ |
| 678 | 678 | u64 bytes_root; /* the number of bytes needed to commit a | |
| 679 | /* delalloc accounting */ | 679 | transaction */ |
| 680 | u64 bytes_delalloc; /* number of bytes reserved for allocation, | ||
| 681 | this space is not necessarily reserved yet | ||
| 682 | by the allocator */ | ||
| 683 | u64 bytes_may_use; /* number of bytes that may be used for | 680 | u64 bytes_may_use; /* number of bytes that may be used for |
| 684 | delalloc */ | 681 | delalloc/allocations */ |
| 682 | u64 bytes_delalloc; /* number of bytes currently reserved for | ||
| 683 | delayed allocation */ | ||
| 685 | 684 | ||
| 686 | int full; /* indicates that we cannot allocate any more | 685 | int full; /* indicates that we cannot allocate any more |
| 687 | chunks for this space */ | 686 | chunks for this space */ |
| 688 | int force_alloc; /* set if we need to force a chunk alloc for | 687 | int force_alloc; /* set if we need to force a chunk alloc for |
| 689 | this space */ | 688 | this space */ |
| 689 | int force_delalloc; /* make people start doing filemap_flush until | ||
| 690 | we're under a threshold */ | ||
| 690 | 691 | ||
| 691 | struct list_head list; | 692 | struct list_head list; |
| 692 | 693 | ||
| 694 | /* for controlling how we free up space for allocations */ | ||
| 695 | wait_queue_head_t allocate_wait; | ||
| 696 | wait_queue_head_t flush_wait; | ||
| 697 | int allocating_chunk; | ||
| 698 | int flushing; | ||
| 699 | |||
| 693 | /* for block groups in our same type */ | 700 | /* for block groups in our same type */ |
| 694 | struct list_head block_groups; | 701 | struct list_head block_groups; |
| 695 | spinlock_t lock; | 702 | spinlock_t lock; |
| @@ -903,6 +910,7 @@ struct btrfs_fs_info { | |||
| 903 | * A third pool does submit_bio to avoid deadlocking with the other | 910 | * A third pool does submit_bio to avoid deadlocking with the other |
| 904 | * two | 911 | * two |
| 905 | */ | 912 | */ |
| 913 | struct btrfs_workers generic_worker; | ||
| 906 | struct btrfs_workers workers; | 914 | struct btrfs_workers workers; |
| 907 | struct btrfs_workers delalloc_workers; | 915 | struct btrfs_workers delalloc_workers; |
| 908 | struct btrfs_workers endio_workers; | 916 | struct btrfs_workers endio_workers; |
| @@ -910,6 +918,7 @@ struct btrfs_fs_info { | |||
| 910 | struct btrfs_workers endio_meta_write_workers; | 918 | struct btrfs_workers endio_meta_write_workers; |
| 911 | struct btrfs_workers endio_write_workers; | 919 | struct btrfs_workers endio_write_workers; |
| 912 | struct btrfs_workers submit_workers; | 920 | struct btrfs_workers submit_workers; |
| 921 | struct btrfs_workers enospc_workers; | ||
| 913 | /* | 922 | /* |
| 914 | * fixup workers take dirty pages that didn't properly go through | 923 | * fixup workers take dirty pages that didn't properly go through |
| 915 | * the cow mechanism and make them safe to write. It happens | 924 | * the cow mechanism and make them safe to write. It happens |
| @@ -1000,7 +1009,10 @@ struct btrfs_root { | |||
| 1000 | atomic_t log_writers; | 1009 | atomic_t log_writers; |
| 1001 | atomic_t log_commit[2]; | 1010 | atomic_t log_commit[2]; |
| 1002 | unsigned long log_transid; | 1011 | unsigned long log_transid; |
| 1012 | unsigned long last_log_commit; | ||
| 1003 | unsigned long log_batch; | 1013 | unsigned long log_batch; |
| 1014 | pid_t log_start_pid; | ||
| 1015 | bool log_multiple_pids; | ||
| 1004 | 1016 | ||
| 1005 | u64 objectid; | 1017 | u64 objectid; |
| 1006 | u64 last_trans; | 1018 | u64 last_trans; |
| @@ -1141,6 +1153,7 @@ struct btrfs_root { | |||
| 1141 | #define BTRFS_MOUNT_FLUSHONCOMMIT (1 << 7) | 1153 | #define BTRFS_MOUNT_FLUSHONCOMMIT (1 << 7) |
| 1142 | #define BTRFS_MOUNT_SSD_SPREAD (1 << 8) | 1154 | #define BTRFS_MOUNT_SSD_SPREAD (1 << 8) |
| 1143 | #define BTRFS_MOUNT_NOSSD (1 << 9) | 1155 | #define BTRFS_MOUNT_NOSSD (1 << 9) |
| 1156 | #define BTRFS_MOUNT_DISCARD (1 << 10) | ||
| 1144 | 1157 | ||
| 1145 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) | 1158 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) |
| 1146 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) | 1159 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) |
| @@ -2022,7 +2035,12 @@ u64 btrfs_reduce_alloc_profile(struct btrfs_root *root, u64 flags); | |||
| 2022 | void btrfs_set_inode_space_info(struct btrfs_root *root, struct inode *ionde); | 2035 | void btrfs_set_inode_space_info(struct btrfs_root *root, struct inode *ionde); |
| 2023 | void btrfs_clear_space_info_full(struct btrfs_fs_info *info); | 2036 | void btrfs_clear_space_info_full(struct btrfs_fs_info *info); |
| 2024 | 2037 | ||
| 2025 | int btrfs_check_metadata_free_space(struct btrfs_root *root); | 2038 | int btrfs_reserve_metadata_space(struct btrfs_root *root, int num_items); |
| 2039 | int btrfs_unreserve_metadata_space(struct btrfs_root *root, int num_items); | ||
| 2040 | int btrfs_unreserve_metadata_for_delalloc(struct btrfs_root *root, | ||
| 2041 | struct inode *inode, int num_items); | ||
| 2042 | int btrfs_reserve_metadata_for_delalloc(struct btrfs_root *root, | ||
| 2043 | struct inode *inode, int num_items); | ||
| 2026 | int btrfs_check_data_free_space(struct btrfs_root *root, struct inode *inode, | 2044 | int btrfs_check_data_free_space(struct btrfs_root *root, struct inode *inode, |
| 2027 | u64 bytes); | 2045 | u64 bytes); |
| 2028 | void btrfs_free_reserved_data_space(struct btrfs_root *root, | 2046 | void btrfs_free_reserved_data_space(struct btrfs_root *root, |
| @@ -2314,7 +2332,7 @@ int btrfs_orphan_del(struct btrfs_trans_handle *trans, struct inode *inode); | |||
| 2314 | void btrfs_orphan_cleanup(struct btrfs_root *root); | 2332 | void btrfs_orphan_cleanup(struct btrfs_root *root); |
| 2315 | int btrfs_cont_expand(struct inode *inode, loff_t size); | 2333 | int btrfs_cont_expand(struct inode *inode, loff_t size); |
| 2316 | int btrfs_invalidate_inodes(struct btrfs_root *root); | 2334 | int btrfs_invalidate_inodes(struct btrfs_root *root); |
| 2317 | extern struct dentry_operations btrfs_dentry_operations; | 2335 | extern const struct dentry_operations btrfs_dentry_operations; |
| 2318 | 2336 | ||
| 2319 | /* ioctl.c */ | 2337 | /* ioctl.c */ |
| 2320 | long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg); | 2338 | long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg); |
| @@ -2326,7 +2344,7 @@ int btrfs_sync_file(struct file *file, struct dentry *dentry, int datasync); | |||
| 2326 | int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end, | 2344 | int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end, |
| 2327 | int skip_pinned); | 2345 | int skip_pinned); |
| 2328 | int btrfs_check_file(struct btrfs_root *root, struct inode *inode); | 2346 | int btrfs_check_file(struct btrfs_root *root, struct inode *inode); |
| 2329 | extern struct file_operations btrfs_file_operations; | 2347 | extern const struct file_operations btrfs_file_operations; |
| 2330 | int btrfs_drop_extents(struct btrfs_trans_handle *trans, | 2348 | int btrfs_drop_extents(struct btrfs_trans_handle *trans, |
| 2331 | struct btrfs_root *root, struct inode *inode, | 2349 | struct btrfs_root *root, struct inode *inode, |
| 2332 | u64 start, u64 end, u64 locked_end, | 2350 | u64 start, u64 end, u64 locked_end, |
| @@ -2357,7 +2375,7 @@ int btrfs_parse_options(struct btrfs_root *root, char *options); | |||
| 2357 | int btrfs_sync_fs(struct super_block *sb, int wait); | 2375 | int btrfs_sync_fs(struct super_block *sb, int wait); |
| 2358 | 2376 | ||
| 2359 | /* acl.c */ | 2377 | /* acl.c */ |
| 2360 | #ifdef CONFIG_FS_POSIX_ACL | 2378 | #ifdef CONFIG_BTRFS_FS_POSIX_ACL |
| 2361 | int btrfs_check_acl(struct inode *inode, int mask); | 2379 | int btrfs_check_acl(struct inode *inode, int mask); |
| 2362 | #else | 2380 | #else |
| 2363 | #define btrfs_check_acl NULL | 2381 | #define btrfs_check_acl NULL |
