From owner-freebsd-current@FreeBSD.ORG Wed Jul 23 14:11:36 2014 Return-Path: Delivered-To: current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 055265B6; Wed, 23 Jul 2014 14:11:36 +0000 (UTC) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 53BBC2FA6; Wed, 23 Jul 2014 14:11:35 +0000 (UTC) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.14.9/8.14.9) with ESMTP id s6NEBMND064312 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 23 Jul 2014 17:11:22 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.9.2 kib.kiev.ua s6NEBMND064312 Received: (from kostik@localhost) by tom.home (8.14.9/8.14.9/Submit) id s6NEBMtU064311; Wed, 23 Jul 2014 17:11:22 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 23 Jul 2014 17:11:22 +0300 From: Konstantin Belousov To: Bryan Drewery Subject: Re: r268621: panic: shadowed tmpfs v_object [with dump] Message-ID: <20140723141122.GG93733@kib.kiev.ua> References: <53CED27C.4080306@FreeBSD.org> <53CED29F.1090809@FreeBSD.org> <53CED718.2090108@FreeBSD.org> <53CEDD74.9070804@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="pZNecdF2o6CbdTLS" Content-Disposition: inline In-Reply-To: <53CEDD74.9070804@FreeBSD.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on tom.home Cc: current@FreeBSD.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2014 14:11:36 -0000 --pZNecdF2o6CbdTLS Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 22, 2014 at 02:53:56PM -0700, Bryan Drewery wrote: > On 7/22/14, 2:26 PM, Bryan Drewery wrote: > > On 7/22/14, 2:07 PM, Bryan Drewery wrote: > >> Meant to send to current@, moving there. > >> > >> On 7/22/14, 2:07 PM, Bryan Drewery wrote: > >>> On r268621: > >>> > >>>> panic: shadowed tmpfs v_object 0xfffff807a7f96600 > >>>> cpuid =3D 0 > >>>> KDB: stack backtrace: > >>>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > >>>> 0xfffffe1247d67390 > >>>> kdb_backtrace() at kdb_backtrace+0x39/frame 0xfffffe1247d67440 > >>>> vpanic() at vpanic+0x126/frame 0xfffffe1247d67480 > >>>> kassert_panic() at kassert_panic+0x139/frame 0xfffffe1247d674f0 > >>>> vm_object_deallocate() at vm_object_deallocate+0x236/frame > >>>> 0xfffffe1247d67550 > >>>> tmpfs_free_node() at tmpfs_free_node+0x138/frame 0xfffffe1247d67580 > >>>> tmpfs_reclaim() at tmpfs_reclaim+0x17d/frame 0xfffffe1247d675c0 > >>>> VOP_RECLAIM_APV() at VOP_RECLAIM_APV+0xf7/frame 0xfffffe1247d675f0 > >>>> vgonel() at vgonel+0x1a1/frame 0xfffffe1247d67660 > >>>> vrecycle() at vrecycle+0x3e/frame 0xfffffe1247d67690 > >>>> tmpfs_inactive() at tmpfs_inactive+0x4c/frame 0xfffffe1247d676b0 > >>>> VOP_INACTIVE_APV() at VOP_INACTIVE_APV+0xf7/frame 0xfffffe1247d676e0 > >>>> vinactive() at vinactive+0xc6/frame 0xfffffe1247d67730 > >>>> vputx() at vputx+0x27a/frame 0xfffffe1247d67790 > >>>> tmpfs_rename() at tmpfs_rename+0xf5/frame 0xfffffe1247d67860 > >>>> VOP_RENAME_APV() at VOP_RENAME_APV+0xfc/frame 0xfffffe1247d67890 > >>>> kern_renameat() at kern_renameat+0x3ef/frame 0xfffffe1247d67ae0 > >>>> amd64_syscall() at amd64_syscall+0x25a/frame 0xfffffe1247d67bf0 > >>>> Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfffffe1247d67bf0 > >>>> --- syscall (128, FreeBSD ELF64, sys_rename), rip =3D 0x80088b74a, r= sp =3D > >>>> 0x7fffffffe238, rbp =3D 0x7fffffffe710 --- > >>>> Uptime: 6d4h0m3s > >>>> > >>>> Dump failed. Partition too small. > >>> > >>> Unfortunately I have no dump to debug. > >>> > >> > > Running poudriere again after boot hit the issue right away: > > > > > >> (kgdb) bt > >> #0 doadump (textdump=3D1) at pcpu.h:219 > >> #1 0xffffffff809122a7 in kern_reboot (howto=3D260) at > >> /usr/src/sys/kern/kern_shutdown.c:445 > >> #2 0xffffffff809127e5 in vpanic (fmt=3D, ap=3D >> optimized out>) at /usr/src/sys/kern/kern_shutdown.c:744 > >> #3 0xffffffff80912679 in kassert_panic (fmt=3D) = at > >> /usr/src/sys/kern/kern_shutdown.c:632 > >> #4 0xffffffff80ba7996 in vm_object_deallocate (object=3D >> optimized out>) at /usr/src/sys/vm/vm_object.c:562 > >> #5 0xffffffff820a75a8 in tmpfs_free_node (tmp=3D0xfffff800b5155980, > >> node=3D0xfffff802716ba740) at > >> /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:335 > >> #6 0xffffffff820a363d in tmpfs_reclaim (v=3D) at > >> /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_vnops.c:1276 > >> #7 0xffffffff80e48717 in VOP_RECLAIM_APV (vop=3D, > >> a=3D) at vnode_if.c:2017 > >> #8 0xffffffff809c1381 in vgonel (vp=3D0xfffff802716b61d8) at > >> vnode_if.h:830 > >> #9 0xffffffff809c18be in vrecycle (vp=3D0xfffff802716b61d8) at > >> /usr/src/sys/kern/vfs_subr.c:2655 > >> #10 0xffffffff820a61cc in tmpfs_inactive (v=3D) at > >> /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_vnops.c:1242 > >> #11 0xffffffff80e485b7 in VOP_INACTIVE_APV (vop=3D, > >> a=3D) at vnode_if.c:1951 > >> #12 0xffffffff809bfd36 in vinactive (vp=3D0xfffff802716b61d8, > >> td=3D0xfffff80187e29920) at vnode_if.h:807 > >> #13 0xffffffff809c012a in vputx (vp=3D0xfffff802716b61d8, func=3D2) at > >> /usr/src/sys/kern/vfs_subr.c:2267 > >> #14 0xffffffff820a47c5 in tmpfs_rename (v=3D) at > >> /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_vnops.c:1023 > >> #15 0xffffffff80e47d3c in VOP_RENAME_APV (vop=3D, > >> a=3D) at vnode_if.c:1544 > >> #16 0xffffffff809cc77f in kern_renameat (td=3D, > >> oldfd=3D, old=3D, newfd=3D >> optimized out>, new=3D, > >> pathseg=3D) at vnode_if.h:636 > >> #17 0xffffffff80d280fa in amd64_syscall (td=3D0xfffff80187e29920, > >> traced=3D0) at subr_syscall.c:133 > >> #18 0xffffffff80d0a64b in Xfast_syscall () at > >> /usr/src/sys/amd64/amd64/exception.S:407 > >> (kgdb) p *(vm_object_t)0xfffff8027169f500 > >> $1 =3D {lock =3D {lock_object =3D {lo_name =3D 0xffffffff80fe89f6 "vm = object", > >> lo_flags =3D 90374144, lo_data =3D 0, lo_witness =3D 0xfffffe00006e768= 0}, > >> rw_lock =3D 18446735284191271200}, object_list =3D { > >> tqe_next =3D 0xfffff8027169f400, tqe_prev =3D 0xfffff8027169f620}, > >> shadow_head =3D {lh_first =3D 0xfffff801b8489e00}, shadow_list =3D {le= _next > >> =3D 0x0, le_prev =3D 0x0}, memq =3D {tqh_first =3D 0xfffff811d966bc08, > >> tqh_last =3D 0xfffff811d966bc18}, rtree =3D {rt_root =3D > >> 18446735354278362121, rt_flags =3D 0 '\0'}, size =3D 1, generation =3D= 1, > >> ref_count =3D 1, shadow_count =3D 1, memattr =3D 6 '\006', type =3D 1 = '\001', > >> flags =3D 528, pg_color =3D 0, paging_in_progress =3D 0, > >> resident_page_count =3D 1, backing_object =3D 0x0, backing_object_offs= et =3D > >> 0, pager_object_list =3D {tqe_next =3D 0x0, tqe_prev =3D 0x0}, rvq =3D= { > >> lh_first =3D 0x0}, cache =3D {rt_root =3D 0, rt_flags =3D 0 '\0'},= handle > >> =3D 0x0, un_pager =3D {vnp =3D {vnp_size =3D 0, writemappings =3D 0}, = devp =3D > >> {devp_pglist =3D {tqh_first =3D 0x0, tqh_last =3D 0x0}, ops =3D 0x0, > >> dev =3D 0x0}, sgp =3D {sgp_pglist =3D {tqh_first =3D 0x0, tqh_la= st =3D > >> 0x0}}, swp =3D {swp_tmpfs =3D 0x0, swp_bcount =3D 0}}, cred =3D 0x0, c= harge =3D 0} > >> (kgdb) frame 8 > >> #8 0xffffffff809c1381 in vgonel (vp=3D0xfffff802716b61d8) at > >> vnode_if.h:830 > >> 830 return (VOP_RECLAIM_APV(vp->v_op, &a)); > >> (kgdb) p *vp > >> $2 =3D {v_tag =3D 0xffffffff820abf96 "tmpfs", v_op =3D 0xffffffff820ac= 938, > >> v_data =3D 0x0, v_mount =3D 0xfffff8004733a000, v_nmntvnodes =3D {tqe_= next =3D > >> 0xfffff802716b6000, tqe_prev =3D 0xfffff802716b63d0}, v_un =3D { > >> vu_mount =3D 0x0, vu_socket =3D 0x0, vu_cdev =3D 0x0, vu_fifoinfo = =3D > >> 0x0}, v_hashlist =3D {le_next =3D 0x0, le_prev =3D 0x0}, v_cache_src = =3D > >> {lh_first =3D 0x0}, v_cache_dst =3D {tqh_first =3D 0x0, > >> tqh_last =3D 0xfffff802716b6228}, v_cache_dd =3D 0x0, v_lock =3D > >> {lock_object =3D {lo_name =3D 0xffffffff820abf96 "tmpfs", lo_flags =3D > >> 116588544, lo_data =3D 0, lo_witness =3D 0xfffffe0000711980}, > >> lk_lock =3D 18446735284191271200, lk_exslpfail =3D 0, lk_timo =3D = 51, > >> lk_pri =3D 96}, v_interlock =3D {lock_object =3D {lo_name =3D > >> 0xffffffff80fafc26 "vnode interlock", lo_flags =3D 16973824, lo_data = =3D 0, > >> lo_witness =3D 0xfffffe00006e7500}, mtx_lock =3D 4}, v_vnlock =3D > >> 0xfffff802716b6240, v_actfreelist =3D {tqe_next =3D 0xfffff80271898588, > >> tqe_prev =3D 0xfffff8004733a078}, v_bufobj =3D {bo_lock =3D { > >> lock_object =3D {lo_name =3D 0xffffffff80fb8084 "bufobj interloc= k", > >> lo_flags =3D 86179840, lo_data =3D 0, lo_witness =3D 0xfffffe00006ef38= 0}, > >> rw_lock =3D 1}, bo_ops =3D 0xffffffff814942a0, bo_object =3D 0x0, > >> bo_synclist =3D {le_next =3D 0x0, le_prev =3D 0x0}, bo_private =3D > >> 0xfffff802716b61d8, __bo_vnode =3D 0xfffff802716b61d8, bo_clean =3D {b= v_hd > >> =3D {tqh_first =3D 0x0, tqh_last =3D 0xfffff802716b62f8}, bv_root =3D { > >> pt_root =3D 0}, bv_cnt =3D 0}, bo_dirty =3D {bv_hd =3D {tqh_fi= rst =3D > >> 0x0, tqh_last =3D 0xfffff802716b6318}, bv_root =3D {pt_root =3D 0}, bv= _cnt =3D > >> 0}, bo_numoutput =3D 0, bo_flag =3D 0, bo_bsize =3D 4096}, > >> v_pollinfo =3D 0x0, v_label =3D 0x0, v_lockf =3D 0x0, v_rl =3D {rl_w= aiters =3D > >> {tqh_first =3D 0x0, tqh_last =3D 0xfffff802716b6360}, rl_currdep =3D 0= x0}, > >> v_cstart =3D 0, v_lasta =3D 0, v_lastw =3D 0, v_clen =3D 0, > >> v_holdcnt =3D 2, v_usecount =3D 0, v_iflag =3D 2688, v_vflag =3D 0, > >> v_writecount =3D 0, v_hash =3D 40987489, v_type =3D VREG} > >> (kgdb) info locals > >> mp =3D (struct mount *) 0xfffff8004733a000 > >> fromnd =3D {ni_dirp =3D 0x801006080
, > >> ni_segflg =3D UIO_USERSPACE, ni_rightsneeded =3D {cr_rights =3D > >> {144115188142965760, 288230376151711744}}, > >> ni_startdir =3D 0xfffff802716b63b0, ni_rootdir =3D 0xfffff8026b01a76= 0, > >> ni_topdir =3D 0xfffff8026b01a760, ni_dirfd =3D -100, ni_strictrelative= =3D > >> 0, ni_filecaps =3D {fc_rights =3D {cr_rights =3D {0, 0}}, > >> fc_ioctls =3D 0x0, fc_nioctls =3D -1, fc_fcntls =3D 0}, ni_vp =3D > >> 0xfffff80271898588, ni_dvp =3D 0xfffff802716b63b0, ni_pathlen =3D 1, > >> ni_next =3D 0xfffff80061ea501f "", ni_loopcnt =3D 0, ni_cnd =3D {cn_na= meiop > >> =3D 2, > >> cn_flags =3D 67148812, cn_thread =3D 0xfffff80187e29920, cn_cred = =3D > >> 0xfffff80038911800, cn_lkflags =3D 524288, cn_pnbuf =3D 0xfffff80061ea= 5000 > >> "/var/run/ld-elf.so.hints.HTjP6A", > >> cn_nameptr =3D 0xfffff80061ea5009 "ld-elf.so.hints.HTjP6A", > >> cn_namelen =3D 22, cn_consume =3D 0}} > >> tond =3D {ni_dirp =3D 0x403e66
, ni_se= gflg > >> =3D UIO_USERSPACE, ni_rightsneeded =3D {cr_rights =3D {144115188080051= 200, > >> 288230376151711744}}, ni_startdir =3D 0xfffff802716b63b0, > >> ni_rootdir =3D 0xfffff8026b01a760, ni_topdir =3D 0xfffff8026b01a760, > >> ni_dirfd =3D -100, ni_strictrelative =3D 0, ni_filecaps =3D {fc_rights= =3D > >> {cr_rights =3D {0, 0}}, fc_ioctls =3D 0x0, fc_nioctls =3D -1, > >> fc_fcntls =3D 0}, ni_vp =3D 0xfffff802716b61d8, ni_dvp =3D > >> 0xfffff802716b63b0, ni_pathlen =3D 1, ni_next =3D 0xfffff80038d69418 "= ", > >> ni_loopcnt =3D 0, ni_cnd =3D {cn_nameiop =3D 3, cn_flags =3D 134257708, > >> cn_thread =3D 0xfffff80187e29920, cn_cred =3D 0xfffff80038911800, > >> cn_lkflags =3D 524288, cn_pnbuf =3D 0xfffff80038d69400 > >> "/var/run/ld-elf.so.hints", cn_nameptr =3D 0xfffff80038d69409 > >> "ld-elf.so.hints", > >> cn_namelen =3D 15, cn_consume =3D 0}} > >> rights =3D {cr_rights =3D {144115188080051200, 288230376151711744}} > >> mp =3D (struct mount *) 0xfffff8004733a000 > >> error =3D > >> fvp =3D > >> tvp =3D > >> tdvp =3D > >> (kgdb) p *mp > >> $9 =3D {mnt_mtx =3D {lock_object =3D {lo_name =3D 0xffffffff80f8fcec "= struct > >> mount mtx", lo_flags =3D 16973824, lo_data =3D 0, lo_witness =3D > >> 0xfffffe00006e7a00}, mtx_lock =3D 4}, mnt_gen =3D 1, mnt_list =3D { > >> tqe_next =3D 0xfffff80038fa9cc0, tqe_prev =3D 0xfffff80187b74ce8}, > >> mnt_op =3D 0xffffffff820ace60, mnt_vfc =3D 0xffffffff820acf80, > >> mnt_vnodecovered =3D 0xfffff801b853e760, mnt_syncer =3D 0xfffff8026b01= a588, > >> mnt_ref =3D 13206, mnt_nvnodelist =3D {tqh_first =3D 0xfffff8026b01a= 760, > >> tqh_last =3D 0xfffff802718985a8}, mnt_nvnodelistsize =3D 13205, > >> mnt_activevnodelist =3D {tqh_first =3D 0xfffff802716b61d8, > >> tqh_last =3D 0xfffff8026b01a648}, mnt_activevnodelistsize =3D 730, > >> mnt_writeopcount =3D 1, mnt_kern_flag =3D 0, mnt_flag =3D 4096, mnt_op= t =3D > >> 0xfffff8000e59cc30, mnt_optnew =3D 0xfffff8001b9ea050, > >> mnt_maxsymlinklen =3D 0, mnt_stat =3D {f_version =3D 537068824, f_ty= pe =3D > >> 135, f_flags =3D 4096, f_bsize =3D 4096, f_iosize =3D 4096, f_blocks = =3D > >> 1835008, f_bfree =3D 1738991, f_bavail =3D 1738991, f_files =3D 256901= 12, > >> f_ffree =3D 25676911, f_syncwrites =3D 0, f_asyncwrites =3D 0, > >> f_syncreads =3D 0, f_asyncreads =3D 0, f_spare =3D {0, 0, 0, 0, 0, 0, = 0, 0, > >> 0, 0}, f_namemax =3D 255, f_owner =3D 0, f_fsid =3D {val =3D {-2029977= 843, > >> 135}}, f_charspare =3D '\0' , f_fstypename = =3D > >> "tmpfs\000\000\000\000\000\000\000\000\000\000", f_mntfromname =3D > >> "tmpfs", '\0' , > >> f_mntonname =3D "/poudriere/data/.m/exp-10amd64-commit-test/01", > >> '\0' }, mnt_cred =3D 0xfffff80047478700, mnt_data =3D > >> 0xfffff800b5155980, mnt_time =3D 0, mnt_iosize_max =3D 65536, > >> mnt_export =3D 0x0, mnt_label =3D 0x0, mnt_hashseed =3D 1147308587, > >> mnt_lockref =3D 0, mnt_secondary_writes =3D 0, mnt_secondary_accwrites= =3D > >> 0, mnt_susp_owner =3D 0x0, mnt_gjprovider =3D 0x0, mnt_explock =3D { > >> lock_object =3D {lo_name =3D 0xffffffff80f8fd0f "explock", lo_flag= s =3D > >> 108199936, lo_data =3D 0, lo_witness =3D 0xfffffe000070ef80}, lk_lock = =3D 1, > >> lk_exslpfail =3D 0, lk_timo =3D 0, lk_pri =3D 96}, > >> mnt_upper_link =3D {tqe_next =3D 0x0, tqe_prev =3D 0x0}, mnt_uppers = =3D > >> {tqh_first =3D 0x0, tqh_last =3D 0xfffff8004733a320}} > > >=20 > Shadowed object: >=20 > > (kgdb) p *$1->shadow_head->lh_first > > $3 =3D {lock =3D {lock_object =3D {lo_name =3D 0xffffffff80fe89f6 "vm o= bject", lo_flags =3D 90374144, lo_data =3D 0, lo_witness =3D 0xfffffe00006e= 7680}, rw_lock =3D 1}, object_list =3D {tqe_next =3D 0xfffff801b8b3ae00, > > tqe_prev =3D 0xfffff802717bb120}, shadow_head =3D {lh_first =3D 0x0= }, shadow_list =3D {le_next =3D 0x0, le_prev =3D 0xfffff8027169f530}, memq = =3D {tqh_first =3D 0xfffff811da2c75f8, tqh_last =3D 0xfffff811da2c7608}, > > rtree =3D {rt_root =3D 18446735354291320313, rt_flags =3D 0 '\0'}, si= ze =3D 1, generation =3D 1, ref_count =3D 1, shadow_count =3D 0, memattr = =3D 6 '\006', type =3D 0 '\0', flags =3D 12288, pg_color =3D 1598, > > paging_in_progress =3D 0, resident_page_count =3D 1, backing_object = =3D 0xfffff8027169f500, backing_object_offset =3D 0, pager_object_list =3D = {tqe_next =3D 0x0, tqe_prev =3D 0x0}, rvq =3D {lh_first =3D 0x0}, cache =3D= { > > rt_root =3D 0, rt_flags =3D 0 '\0'}, handle =3D 0x0, un_pager =3D {= vnp =3D {vnp_size =3D 0, writemappings =3D 0}, devp =3D {devp_pglist =3D {t= qh_first =3D 0x0, tqh_last =3D 0x0}, ops =3D 0x0, dev =3D 0x0}, sgp =3D { > > sgp_pglist =3D {tqh_first =3D 0x0, tqh_last =3D 0x0}}, swp =3D {s= wp_tmpfs =3D 0x0, swp_bcount =3D 0}}, cred =3D 0xfffff80038911800, charge = =3D 4096} >=20 Try this diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 1b97bdf..bb01f00 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -559,8 +559,6 @@ vm_object_deallocate(vm_object_t object) (object->handle =3D=3D NULL) && (object->type =3D=3D OBJT_DEFAULT || object->type =3D=3D OBJT_SWAP)) { - KASSERT((object->flags & OBJ_TMPFS_NODE) =3D=3D 0, - ("shadowed tmpfs v_object %p", object)); vm_object_t robject; =20 robject =3D LIST_FIRST(&object->shadow_head); @@ -568,6 +566,8 @@ vm_object_deallocate(vm_object_t object) ("vm_object_deallocate: ref_count: %d, shadow_count: %d", object->ref_count, object->shadow_count)); + KASSERT((robject->flags & OBJ_TMPFS_NODE) =3D=3D 0, + ("shadowed tmpfs v_object %p", object)); if (!VM_OBJECT_TRYWLOCK(robject)) { /* * Avoid a potential deadlock. @@ -637,6 +637,8 @@ retry: doterm: temp =3D object->backing_object; if (temp !=3D NULL) { + KASSERT((object->flags & OBJ_TMPFS_NODE) =3D=3D 0, + ("shadowed tmpfs v_object 2 %p", object)); VM_OBJECT_WLOCK(temp); LIST_REMOVE(object, shadow_list); temp->shadow_count--; --pZNecdF2o6CbdTLS Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBAgAGBQJTz8KKAAoJEJDCuSvBvK1BvugP+wR3VKgEftuq+LpUthzIVkqd HmDeWO9HFd84I1ewg3z+Am0nJvkbVKULSw6uGEu6oHVIS6q+rU8zj2iYTU5N0VtX bzL5yXtX+UR2pLpPCJGSHLfqim8RIDPdWD+ZR2Dt028BUtD8Y1v7ejwIMqD8ZvSt i36ZyD/WfGW3+5RvXkm60xGxgaA5xcjM6qwBQQGLgoLjXmwf3i6VB2wFVvs53ppS C7zdCXG4FsO/8YMDNAsf3EtZaFG4QV7wIWHlm9Inys6fCs203URzSPPNl5trRIO7 bffq3YJMTgJoa1K/zp1URIEE4VRWxb8j0fxMgak+xjp3y0WNC/Jv022DJ56UYdfN o18O6e9oLRiTa2k5ELThBOUxuaEjyZ5dZ43zuyScxGq84HLy64ZjTq0n24Kh0CjB 8Embnkth/lsV/RczQ7eVTwe/Y8Io4o+vPYUYYAXPwywJjVc/A5P9H1CTbEl3ovQq 0ZL5+WzE4vsmy36vs6TYL8ir5H3mGQb/coK52kqDPrqS+Z8uGzs6+Tmo9f/T+pmp Q4lIi/4OsePYhpdzl6+oIZmn4YL0JK+iF65pG+mnJvYpdo3xFVeuaHPLAA02kYe5 BnUyI5lyexTc2TTn2h43zoSfyaN5s8W51BVpPvPefcklfJfDFKwVj+BpEVBvNxg4 rRS5jcJgY6gLAa3CQ3gL =EOQL -----END PGP SIGNATURE----- --pZNecdF2o6CbdTLS--