Tools: hv: Handle the case when the target file exists correctly
Return the appropriate error code and handle the case when the target file exists correctly. This fixes a bug. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
					parent
					
						
							
								177581faf2
							
						
					
				
			
			
				commit
				
					
						314672a2c2
					
				
			
		
					 2 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -305,6 +305,7 @@ enum hv_kvp_exchg_pool {
 | 
			
		|||
#define HV_ERROR_DEVICE_NOT_CONNECTED	0x8007048F
 | 
			
		||||
#define HV_INVALIDARG			0x80070057
 | 
			
		||||
#define HV_GUID_NOTFOUND		0x80041002
 | 
			
		||||
#define HV_ERROR_ALREADY_EXISTS		0x80070050
 | 
			
		||||
 | 
			
		||||
#define ADDR_FAMILY_NONE	0x00
 | 
			
		||||
#define ADDR_FAMILY_IPV4	0x01
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,8 +82,10 @@ static int hv_start_fcopy(struct hv_start_fcopy *smsg)
 | 
			
		|||
 | 
			
		||||
	if (!access(target_fname, F_OK)) {
 | 
			
		||||
		syslog(LOG_INFO, "File: %s exists", target_fname);
 | 
			
		||||
		if (!smsg->copy_flags & OVER_WRITE)
 | 
			
		||||
		if (!(smsg->copy_flags & OVER_WRITE)) {
 | 
			
		||||
			error = HV_ERROR_ALREADY_EXISTS;
 | 
			
		||||
			goto done;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	target_fd = open(target_fname, O_RDWR | O_CREAT | O_CLOEXEC, 0744);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue