mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	btrfs: add WARN_ON() to check is space_info op current
space_info's value calculation is some complex and easy to cause bug, add WARN_ON() to help debug. Changelog v1->v2: Put WARN_ON()s under the ENOSPC_DEBUG mount option. Suggested by: David Sterba <dsterba@suse.cz> Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
		
							parent
							
								
									c30666d466
								
							
						
					
					
						commit
						18d018ad2c
					
				
					 1 changed files with 10 additions and 0 deletions
				
			
		|  | @ -9732,9 +9732,19 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans, | ||||||
| 
 | 
 | ||||||
| 	spin_lock(&block_group->space_info->lock); | 	spin_lock(&block_group->space_info->lock); | ||||||
| 	list_del_init(&block_group->ro_list); | 	list_del_init(&block_group->ro_list); | ||||||
|  | 
 | ||||||
|  | 	if (btrfs_test_opt(root, ENOSPC_DEBUG)) { | ||||||
|  | 		WARN_ON(block_group->space_info->total_bytes | ||||||
|  | 			< block_group->key.offset); | ||||||
|  | 		WARN_ON(block_group->space_info->bytes_readonly | ||||||
|  | 			< block_group->key.offset); | ||||||
|  | 		WARN_ON(block_group->space_info->disk_total | ||||||
|  | 			< block_group->key.offset * factor); | ||||||
|  | 	} | ||||||
| 	block_group->space_info->total_bytes -= block_group->key.offset; | 	block_group->space_info->total_bytes -= block_group->key.offset; | ||||||
| 	block_group->space_info->bytes_readonly -= block_group->key.offset; | 	block_group->space_info->bytes_readonly -= block_group->key.offset; | ||||||
| 	block_group->space_info->disk_total -= block_group->key.offset * factor; | 	block_group->space_info->disk_total -= block_group->key.offset * factor; | ||||||
|  | 
 | ||||||
| 	spin_unlock(&block_group->space_info->lock); | 	spin_unlock(&block_group->space_info->lock); | ||||||
| 
 | 
 | ||||||
| 	memcpy(&key, &block_group->key, sizeof(key)); | 	memcpy(&key, &block_group->key, sizeof(key)); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Zhao Lei
						Zhao Lei