[FreeBSD] fix false assert in cache_vop_rmdir when replaying ZIL
The assert is enabled when DEBUG_VFS_LOCKS kernel option is set. The exact panic is: panic: condition seqc_in_modify(_vp->v_seqc) not met It happens because seqc protocol is not followed for ZIL replay. But we actually do not need to make any namecache calls at that stage, because the namecache use is not enabled until after the replay is completed. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Andriy Gapon <avg@FreeBSD.org> Closes #14566
This commit is contained in:
parent
1191387012
commit
a55254be7a
|
@ -1624,7 +1624,8 @@ zfs_rmdir_(vnode_t *dvp, vnode_t *vp, const char *name, cred_t *cr)
|
|||
|
||||
dmu_tx_commit(tx);
|
||||
|
||||
cache_vop_rmdir(dvp, vp);
|
||||
if (zfsvfs->z_use_namecache)
|
||||
cache_vop_rmdir(dvp, vp);
|
||||
out:
|
||||
if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
|
||||
zil_commit(zilog, 0);
|
||||
|
|
Loading…
Reference in New Issue