Drop v_interlock for zfs_range_lock(), another thread might hold part

of this range and wait for v_interlock.
This commit is contained in:
hannken 2018-12-13 10:20:51 +00:00
parent 398893d51c
commit 2595f06922
1 changed files with 2 additions and 0 deletions

View File

@ -5985,7 +5985,9 @@ zfs_netbsd_putpages(void *v)
len = UINT64_MAX;
else
len = offhi - offlo;
mutex_exit(vp->v_interlock);
rl = zfs_range_lock(zp, offlo, len, RL_WRITER);
mutex_enter(vp->v_interlock);
tsd_set(zfs_putpage_key, &cleaned);
}
error = genfs_putpages(v);