mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-07-12 18:57:39 +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"));
|
||||
ret = zfs_error(hdl, EZFS_EXISTS, errbuf);
|
||||
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:
|
||||
ret = zfs_standard_error(hdl, errno, errbuf);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user