mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Fix out-of-order ZIL txtype lost on hardlinked files
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes #8769 Closes #9061
This commit is contained in:
committed by
Brian Behlendorf
parent
475ebd763a
commit
8e556c5ebc
@@ -160,6 +160,14 @@ log_must attr -qs fileattr -V HelloWorld /$TESTPOOL/$TESTFS/xattr.file
|
||||
log_must attr -qs tmpattr -V HelloWorld /$TESTPOOL/$TESTFS/xattr.file
|
||||
log_must attr -qr tmpattr /$TESTPOOL/$TESTFS/xattr.file
|
||||
|
||||
# TX_WRITE, TX_LINK, TX_REMOVE
|
||||
# Make sure TX_REMOVE won't affect TX_WRITE if file is not destroyed
|
||||
log_must dd if=/dev/urandom of=/$TESTPOOL/$TESTFS/link_and_unlink bs=128k \
|
||||
count=8
|
||||
log_must ln /$TESTPOOL/$TESTFS/link_and_unlink \
|
||||
/$TESTPOOL/$TESTFS/link_and_unlink.link
|
||||
log_must rm /$TESTPOOL/$TESTFS/link_and_unlink.link
|
||||
|
||||
#
|
||||
# 4. Copy TESTFS to temporary location (TESTDIR/copy)
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user