Apply by doing
       cd /usr/src/sys/miscfs/union
       patch -p0 < unionfs.patch

And then rebuild your kernel.

Index: union_vnops.c
===================================================================
RCS file: /cvs/src/sys/miscfs/union/union_vnops.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- union_vnops.c       1997/11/06 05:58:54     1.9
+++ union_vnops.c       1998/07/13 02:52:01     1.10
@@ -1,4 +1,4 @@
-/*     $OpenBSD: union_vnops.c,v 1.9 1997/11/06 05:58:54 csapuntz Exp $        */
+/*     $OpenBSD: union_vnops.c,v 1.10 1998/07/13 02:52:01 csapuntz Exp $       */
/*     $NetBSD: union_vnops.c,v 1.30.4.1 1996/05/25 22:10:14 jtc Exp $ */

/*
@@ -1591,8 +1591,10 @@

       union_diruncache(un);

+       VOP_UNLOCK(ap->a_vp, 0, ap->a_p);
+
       if ((un->un_flags & UN_CACHED) == 0)
-               vgone(ap->a_vp);
+               vrecycle(ap->a_vp, (struct simplelock *)0, ap->a_p);

       return (0);
}