mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-25 19:57:43 +03:00
Illumos #3100: zvol rename fails with EBUSY when dirty.
illumos/illumos-gate@2e2c135528 Illumos changeset: 13780:6da32a929222 3100 zvol rename fails with EBUSY when dirty Reviewed by: Christopher Siden <chris.siden@delphix.com> Reviewed by: Adam H. Leventhal <ahl@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Approved by: Eric Schrock <eric.schrock@delphix.com> Ported-by: Etienne Dechamps <etienne.dechamps@ovh.net> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #995
This commit is contained in:
committed by
Brian Behlendorf
parent
0677cb6f52
commit
04434775b7
@@ -901,8 +901,18 @@ zvol_last_close(zvol_state_t *zv)
|
||||
{
|
||||
zil_close(zv->zv_zilog);
|
||||
zv->zv_zilog = NULL;
|
||||
|
||||
dmu_buf_rele(zv->zv_dbuf, zvol_tag);
|
||||
zv->zv_dbuf = NULL;
|
||||
|
||||
/*
|
||||
* Evict cached data
|
||||
*/
|
||||
if (dsl_dataset_is_dirty(dmu_objset_ds(zv->zv_objset)) &&
|
||||
!(zv->zv_flags & ZVOL_RDONLY))
|
||||
txg_wait_synced(dmu_objset_pool(zv->zv_objset), 0);
|
||||
(void) dmu_objset_evict_dbufs(zv->zv_objset);
|
||||
|
||||
dmu_objset_disown(zv->zv_objset, zvol_tag);
|
||||
zv->zv_objset = NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user