HomeFreeBSD

Linux 4.7 compat: Fix deadlock during lookup on case-insensitive

Description

Linux 4.7 compat: Fix deadlock during lookup on case-insensitive

We must not use d_add_ci if the dentry already has the real name. Otherwise,
d_add_ci()->d_alloc_parallel() will find itself on the lookup hash and wait
on itself causing deadlock.

Tested-by: satmandu
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Closes #5124
Closes #5141
Closes #5147
Closes #5148

Details

Provenance
tuxoko <tuxoko@gmail.com>Authored on Sep 23 2016, 2:09 AM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Sep 23 2016, 2:09 AM
Parents
rG663562402050: OpenZFS 6111 - zfs send should ignore datasets created after the ending snapshot
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGd5b897a6a1da: Linux 4.7 compat: Fix deadlock during lookup on case-insensitive (authored by tuxoko <tuxoko@gmail.com>).Sep 23 2016, 2:09 AM