mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Add more descriptive destroy error message
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Reviewed by: Attila Fülöp <attila@fueloep.org>
Signed-off-by: Artem-OSSRevival <artem.vlasenko@ossrevival.org>
Fixes: #14538
Closes: #17234
(cherry picked from commit 37a3e26552)
			
			
This commit is contained in:
		
							parent
							
								
									7bb7ff7b49
								
							
						
					
					
						commit
						0956fd736c
					
				| @ -4022,6 +4022,26 @@ zfs_destroy_snaps_nvl(libzfs_handle_t *hdl, nvlist_t *snaps, boolean_t defer) | |||||||
| 			    dgettext(TEXT_DOMAIN, "snapshot is cloned")); | 			    dgettext(TEXT_DOMAIN, "snapshot is cloned")); | ||||||
| 			ret = zfs_error(hdl, EZFS_EXISTS, errbuf); | 			ret = zfs_error(hdl, EZFS_EXISTS, errbuf); | ||||||
| 			break; | 			break; | ||||||
|  | 		case EBUSY: { | ||||||
|  | 			nvlist_t *existing_holds; | ||||||
|  | 			int err = lzc_get_holds(nvpair_name(pair), | ||||||
|  | 			    &existing_holds); | ||||||
|  | 
 | ||||||
|  | 			/* check the presence of holders */ | ||||||
|  | 			if (err == 0 && !nvlist_empty(existing_holds)) { | ||||||
|  | 				zfs_error_aux(hdl, | ||||||
|  | 				    dgettext(TEXT_DOMAIN, "it's being held. " | ||||||
|  | 				    "Run 'zfs holds -r %s' to see holders."), | ||||||
|  | 				    nvpair_name(pair)); | ||||||
|  | 				ret = zfs_error(hdl, EBUSY, errbuf); | ||||||
|  | 			} else { | ||||||
|  | 				ret = zfs_standard_error(hdl, errno, errbuf); | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			if (err == 0) | ||||||
|  | 				nvlist_free(existing_holds); | ||||||
|  | 			break; | ||||||
|  | 		} | ||||||
| 		default: | 		default: | ||||||
| 			ret = zfs_standard_error(hdl, errno, errbuf); | 			ret = zfs_standard_error(hdl, errno, errbuf); | ||||||
| 			break; | 			break; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Artem-OSSRevival
						Artem-OSSRevival