svn commit: r357329 - head/sys/kern

Mateusz Guzik mjg at FreeBSD.org
Fri Jan 31 11:31:15 UTC 2020


Author: mjg
Date: Fri Jan 31 11:31:14 2020
New Revision: 357329
URL: https://svnweb.freebsd.org/changeset/base/357329

Log:
  vfs: revert the overzealous assert added in r357285 to vgone
  
  The intent was to make it more likely to catch filesystems with custom
  need_inactive routines which fail to call vn_need_pageq_flush (or do an
  equivalent).
  
  One immediate case which is missed is vgone from called by inactive itself.
  
  A better assertion may land later. The routine is not added to vputx because
  it is of no use to tmpfs et al.
  
  Reported by:	syzbot+5f697ec11f89b60941db at syzkaller.appspotmail.com

Modified:
  head/sys/kern/vfs_subr.c

Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c	Fri Jan 31 10:51:13 2020	(r357328)
+++ head/sys/kern/vfs_subr.c	Fri Jan 31 11:31:14 2020	(r357329)
@@ -3862,7 +3862,6 @@ vgonel(struct vnode *vp)
 		vinactivef(vp);
 		VI_UNLOCK(vp);
 	}
-	VNPASS(!vn_need_pageq_flush(vp), vp);
 	if (vp->v_type == VSOCK)
 		vfs_unp_reclaim(vp);
 
@@ -4994,7 +4993,7 @@ vn_need_pageq_flush(struct vnode *vp)
 	struct vm_object *obj;
 	int need;
 
-	VNPASS(VN_IS_DOOMED(vp) || mtx_owned(VI_MTX(vp)), vp);
+	MPASS(mtx_owned(VI_MTX(vp)));
 	need = 0;
 	if ((obj = vp->v_object) != NULL && (vp->v_vflag & VV_NOSYNC) == 0 &&
 	    vm_object_mightbedirty(obj))


More information about the svn-src-head mailing list