Module Name: src Committed By: hannken Date: Thu Dec 13 10:20:51 UTC 2018
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Drop v_interlock for zfs_range_lock(), another thread might hold part of this range and wait for v_interlock. To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.38 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.39 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.38 Thu Dec 13 10:20:20 2018 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Thu Dec 13 10:20:51 2018 @@ -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);