: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 
                                        <[EMAIL PROTECTED]>

:        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);
:+       }
: }

Reply via email to