mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 02:49:32 +03:00
Fix VERIFY(!zil_replaying(zilog, tx)) panic
The zfs_log_clone_range() function is never called from the zfs_clone_range_replay() function, so I assumed it is safe to assert that zil_replaying() is never TRUE here. It turns out zil_replaying() also returns TRUE when the sync property is set to disabled. Fix the problem by just returning if zil_replaying() returns TRUE. Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reported by: Florian Smeets Signed-off-by: Pawel Jakub Dawidek <pawel@dawidek.net> Closes #14758
This commit is contained in:
parent
ac18dc77f3
commit
3b5af20139
@ -905,9 +905,7 @@ zfs_log_clone_range(zilog_t *zilog, dmu_tx_t *tx, int txtype, znode_t *zp,
|
|||||||
uint64_t partlen, max_log_data;
|
uint64_t partlen, max_log_data;
|
||||||
size_t i, partnbps;
|
size_t i, partnbps;
|
||||||
|
|
||||||
VERIFY(!zil_replaying(zilog, tx));
|
if (zil_replaying(zilog, tx) || zp->z_unlinked)
|
||||||
|
|
||||||
if (zp->z_unlinked)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
max_log_data = zil_max_log_data(zilog, sizeof (lr_clone_range_t));
|
max_log_data = zil_max_log_data(zilog, sizeof (lr_clone_range_t));
|
||||||
|
Loading…
Reference in New Issue
Block a user