zfs: cherry-pick fix from openzfs
Vendor PR: #15103 Remove zl_issuer_lock from zil_suspend() Obtained from: OpenZFS OpenZFS commit: 2848de11e516a2ef2e6baa574a60d77a6fb47023 Note: full vendor imports will continue when stable/14 has been branched
This commit is contained in:
parent
cd25b0f740
commit
28d2e3b5de
@ -3941,13 +3941,11 @@ zil_suspend(const char *osname, void **cookiep)
|
||||
return (error);
|
||||
zilog = dmu_objset_zil(os);
|
||||
|
||||
mutex_enter(&zilog->zl_issuer_lock);
|
||||
mutex_enter(&zilog->zl_lock);
|
||||
zh = zilog->zl_header;
|
||||
|
||||
if (zh->zh_flags & ZIL_REPLAY_NEEDED) { /* unplayed log */
|
||||
mutex_exit(&zilog->zl_lock);
|
||||
mutex_exit(&zilog->zl_issuer_lock);
|
||||
dmu_objset_rele(os, suspend_tag);
|
||||
return (SET_ERROR(EBUSY));
|
||||
}
|
||||
@ -3961,7 +3959,6 @@ zil_suspend(const char *osname, void **cookiep)
|
||||
if (cookiep == NULL && !zilog->zl_suspending &&
|
||||
(zilog->zl_suspend > 0 || BP_IS_HOLE(&zh->zh_log))) {
|
||||
mutex_exit(&zilog->zl_lock);
|
||||
mutex_exit(&zilog->zl_issuer_lock);
|
||||
dmu_objset_rele(os, suspend_tag);
|
||||
return (0);
|
||||
}
|
||||
@ -3970,7 +3967,6 @@ zil_suspend(const char *osname, void **cookiep)
|
||||
dsl_pool_rele(dmu_objset_pool(os), suspend_tag);
|
||||
|
||||
zilog->zl_suspend++;
|
||||
mutex_exit(&zilog->zl_issuer_lock);
|
||||
|
||||
if (zilog->zl_suspend > 1) {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user