DragonFly bugs List (threaded) for 2007-10
DragonFly BSD
DragonFly bugs List (threaded) for 2007-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: umount/ls panic


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 22 Oct 2007 08:39:25 -0700 (PDT)

:What about the following patch?
:
:It fixes the assertion failure for the various cases listed in this
:thread.  When running ls from an unmounted /proc, cache_resolve()
:complains but I reckon this is expected:
:
:EXDEV case 1 0xcaba70c8
:EXDEV case 1 0xcaba70c8
:EXDEV case 1 0xcaba70c8
:ls: .: cross-device link

    Yes, the patch looks pretty good.  I'll test it a bit today and
    check out the error case, then commit it.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

:        vp->v_ops = &dead_vnode_vops_p;
:        vn_pollgone(vp);
:        vp->v_tag = VT_NON;
:+
:+       /*
:+        * If the vnode was force-closed, it is still referenced and may be
:+        * vref()'ed again.  vref() calls are allowed for active vnodes only so
:+        * do as if this vnode is active in the "dead vnode" fs.  When its last
:+        * reference goes away, it will be inactivated and reclaimed again in
:+        * this dummy fs.
:+        */
:+       if (active && (flags & DOCLOSE)) {
:+               vp->v_flag &= ~(VINACTIVE|VRECLAIMED);
:+       }
: }




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