Author: mjg
Date: Sat Dec  5 05:56:23 2020
New Revision: 368360
URL: https://svnweb.freebsd.org/changeset/base/368360

Log:
  vfs: keep bad ops on vnode reclaim
  
  They were only modified to accomodate a redundant assertion.
  
  This runs into problems as lockless lookup can still try to use the vnode
  and crash instead of getting an error.
  
  The bug was only present in kernels with INVARIANTS.
  
  Reported by:  kevans

Modified:
  head/sys/kern/vfs_subr.c

Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c    Sat Dec  5 03:18:48 2020        (r368359)
+++ head/sys/kern/vfs_subr.c    Sat Dec  5 05:56:23 2020        (r368360)
@@ -1816,10 +1816,6 @@ freevnode(struct vnode *vp)
                destroy_vpollinfo(vp->v_pollinfo);
                vp->v_pollinfo = NULL;
        }
-#ifdef INVARIANTS
-       /* XXX Elsewhere we detect an already freed vnode via NULL v_op. */
-       vp->v_op = NULL;
-#endif
        vp->v_mountedhere = NULL;
        vp->v_unpcb = NULL;
        vp->v_rdev = NULL;
@@ -3458,8 +3454,6 @@ vdrop_deactivate(struct vnode *vp)
         */
        VNASSERT(!VN_IS_DOOMED(vp), vp,
            ("vdrop: returning doomed vnode"));
-       VNASSERT(vp->v_op != NULL, vp,
-           ("vdrop: vnode already reclaimed."));
        VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp,
            ("vnode with VI_OWEINACT set"));
        VNASSERT((vp->v_iflag & VI_DEFINACT) == 0, vp,
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to