mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Btrfs: reserve sufficient space for ioctl clone
Fix a crash/BUG_ON in the clone ioctl due to insufficient reservation. We need to reserve space for: - adjusting the old extent (possibly splitting it) - adding the new extent - updating the inode Signed-off-by: Sage Weil <sage@newdream.net> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
		
							parent
							
								
									dde820fbf7
								
							
						
					
					
						commit
						b6f3409b21
					
				
					 1 changed files with 6 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -2336,7 +2336,12 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
 | 
			
		|||
			else
 | 
			
		||||
				new_key.offset = destoff;
 | 
			
		||||
 | 
			
		||||
			trans = btrfs_start_transaction(root, 1);
 | 
			
		||||
			/*
 | 
			
		||||
			 * 1 - adjusting old extent (we may have to split it)
 | 
			
		||||
			 * 1 - add new extent
 | 
			
		||||
			 * 1 - inode update
 | 
			
		||||
			 */
 | 
			
		||||
			trans = btrfs_start_transaction(root, 3);
 | 
			
		||||
			if (IS_ERR(trans)) {
 | 
			
		||||
				ret = PTR_ERR(trans);
 | 
			
		||||
				goto out;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue