Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/cddl/osnet/dist/uts/common/fs/zfs Drop v_interlock ...



details:   https://anonhg.NetBSD.org/src/rev/7c276a0de2d0
branches:  trunk
changeset: 995260:7c276a0de2d0
user:      hannken <hannken%NetBSD.org@localhost>
date:      Thu Dec 13 10:20:51 2018 +0000

description:
Drop v_interlock for zfs_range_lock(), another thread might hold part
of this range and wait for v_interlock.

diffstat:

 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c |  2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diffs (13 lines):

diff -r 766c1ae0a31f -r 7c276a0de2d0 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
--- a/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c    Thu Dec 13 10:20:20 2018 +0000
+++ b/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c    Thu Dec 13 10:20:51 2018 +0000
@@ -5985,7 +5985,9 @@
                        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);



Home | Main Index | Thread Index | Old Index