diff options
-rw-r--r-- | fs/btrfs/ctree.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 52c96db0ec0a..84d4c052fcd9 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -1105,7 +1105,7 @@ struct btrfs_qgroup_limit_item { | |||
1105 | } __attribute__ ((__packed__)); | 1105 | } __attribute__ ((__packed__)); |
1106 | 1106 | ||
1107 | struct btrfs_space_info { | 1107 | struct btrfs_space_info { |
1108 | u64 flags; | 1108 | spinlock_t lock; |
1109 | 1109 | ||
1110 | u64 total_bytes; /* total bytes in the space, | 1110 | u64 total_bytes; /* total bytes in the space, |
1111 | this doesn't take mirrors into account */ | 1111 | this doesn't take mirrors into account */ |
@@ -1115,14 +1115,25 @@ struct btrfs_space_info { | |||
1115 | transaction finishes */ | 1115 | transaction finishes */ |
1116 | u64 bytes_reserved; /* total bytes the allocator has reserved for | 1116 | u64 bytes_reserved; /* total bytes the allocator has reserved for |
1117 | current allocations */ | 1117 | current allocations */ |
1118 | u64 bytes_readonly; /* total bytes that are read only */ | ||
1119 | |||
1120 | u64 bytes_may_use; /* number of bytes that may be used for | 1118 | u64 bytes_may_use; /* number of bytes that may be used for |
1121 | delalloc/allocations */ | 1119 | delalloc/allocations */ |
1120 | u64 bytes_readonly; /* total bytes that are read only */ | ||
1121 | |||
1122 | unsigned int full:1; /* indicates that we cannot allocate any more | ||
1123 | chunks for this space */ | ||
1124 | unsigned int chunk_alloc:1; /* set if we are allocating a chunk */ | ||
1125 | |||
1126 | unsigned int flush:1; /* set if we are trying to make space */ | ||
1127 | |||
1128 | unsigned int force_alloc; /* set if we need to force a chunk | ||
1129 | alloc for this space */ | ||
1130 | |||
1122 | u64 disk_used; /* total bytes used on disk */ | 1131 | u64 disk_used; /* total bytes used on disk */ |
1123 | u64 disk_total; /* total bytes on disk, takes mirrors into | 1132 | u64 disk_total; /* total bytes on disk, takes mirrors into |
1124 | account */ | 1133 | account */ |
1125 | 1134 | ||
1135 | u64 flags; | ||
1136 | |||
1126 | /* | 1137 | /* |
1127 | * bytes_pinned is kept in line with what is actually pinned, as in | 1138 | * bytes_pinned is kept in line with what is actually pinned, as in |
1128 | * we've called update_block_group and dropped the bytes_used counter | 1139 | * we've called update_block_group and dropped the bytes_used counter |
@@ -1135,21 +1146,11 @@ struct btrfs_space_info { | |||
1135 | */ | 1146 | */ |
1136 | struct percpu_counter total_bytes_pinned; | 1147 | struct percpu_counter total_bytes_pinned; |
1137 | 1148 | ||
1138 | unsigned int full:1; /* indicates that we cannot allocate any more | ||
1139 | chunks for this space */ | ||
1140 | unsigned int chunk_alloc:1; /* set if we are allocating a chunk */ | ||
1141 | |||
1142 | unsigned int flush:1; /* set if we are trying to make space */ | ||
1143 | |||
1144 | unsigned int force_alloc; /* set if we need to force a chunk | ||
1145 | alloc for this space */ | ||
1146 | |||
1147 | struct list_head list; | 1149 | struct list_head list; |
1148 | 1150 | ||
1151 | struct rw_semaphore groups_sem; | ||
1149 | /* for block groups in our same type */ | 1152 | /* for block groups in our same type */ |
1150 | struct list_head block_groups[BTRFS_NR_RAID_TYPES]; | 1153 | struct list_head block_groups[BTRFS_NR_RAID_TYPES]; |
1151 | spinlock_t lock; | ||
1152 | struct rw_semaphore groups_sem; | ||
1153 | wait_queue_head_t wait; | 1154 | wait_queue_head_t wait; |
1154 | 1155 | ||
1155 | struct kobject kobj; | 1156 | struct kobject kobj; |