HomeFreeBSD

Fix zfsctl_lookup_objset() deadlock

Description

Fix zfsctl_lookup_objset() deadlock

The zfsctl_snapshot_unmount_delay() function must not be called
from zfsctl_lookup_objset() while it is currently holding the
zfs_snapshot_lock. This will result in a deadlock. It is safe
to call zfsctl_snapshot_unmount_delay_impl() directly because the
function already has a reference on the zfs_snapentry_t.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Closes #3997

Details

Provenance
Brian Behlendorf <behlendorf1@llnl.gov>Authored on Dec 10 2015, 11:47 PM
Parents
rG5e94284fe57b: Set 'zfs_expire_snapshot=0' to disable auto-unmount
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGf22f900f15c2: Fix zfsctl_lookup_objset() deadlock (authored by Brian Behlendorf <behlendorf1@llnl.gov>).Dec 14 2015, 8:05 PM