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);

Reply via email to