ext4: Add BUG_ON debugging checks to noalloc_get_block_write()
Enforce that noalloc_get_block_write() is only called to map one block at a time, and that it always is successful in finding a mapping for given an inode's logical block block number if it is called with create == 1. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
		
					parent
					
						
							
								b920c75502
							
						
					
				
			
			
				commit
				
					
						a2dc52b5d1
					
				
			
		
					 1 changed files with 3 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -2433,11 +2433,14 @@ static int noalloc_get_block_write(struct inode *inode, sector_t iblock,
 | 
			
		|||
	int ret = 0;
 | 
			
		||||
	unsigned max_blocks = bh_result->b_size >> inode->i_blkbits;
 | 
			
		||||
 | 
			
		||||
	BUG_ON(bh_result->b_size != inode->i_sb->s_blocksize);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * we don't want to do block allocation in writepage
 | 
			
		||||
	 * so call get_block_wrap with create = 0
 | 
			
		||||
	 */
 | 
			
		||||
	ret = ext4_get_blocks(NULL, inode, iblock, max_blocks, bh_result, 0);
 | 
			
		||||
	BUG_ON(create && ret == 0);
 | 
			
		||||
	if (ret > 0) {
 | 
			
		||||
		bh_result->b_size = (ret << inode->i_blkbits);
 | 
			
		||||
		ret = 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue