Index: nlm/nlm_advlock.c =================================================================== --- nlm/nlm_advlock.c (revision 193432) +++ nlm/nlm_advlock.c (working copy) @@ -716,7 +716,7 @@ nlm_record_lock(struct vnode *vp, int op, struct f newfl.l_sysid = NLM_SYSID_CLIENT | sysid; error = lf_advlockasync(&a, &vp->v_lockf, size); - KASSERT(error == 0 || errno == ENOENT, + KASSERT(error == 0 || error == ENOENT, ("Failed to register NFS lock locally - error=%d", error)); } Index: netinet/ip_fw2.c =================================================================== --- netinet/ip_fw2.c (revision 193432) +++ netinet/ip_fw2.c (working copy) @@ -3323,8 +3323,10 @@ check_body: case O_FORWARD_IP: { struct sockaddr_in *sa; sa = &(((ipfw_insn_sa *)cmd)->sa); +#if 0 if (args->eh) /* not valid on layer2 pkts */ break; +#endif if (!q || dyn_dir == MATCH_FORWARD) { if (sa->sin_addr.s_addr == INADDR_ANY) { bcopy(sa, &args->hopstore, Index: net/if_bridge.c =================================================================== --- net/if_bridge.c (revision 193432) +++ net/if_bridge.c (working copy) @@ -2939,6 +2939,9 @@ bridge_pfil(struct mbuf **mp, struct ifnet *bifp, struct ip *ip; struct llc llc1; u_int16_t ether_type; +#if 1 + struct m_tag *fwd_tag; +#endif snap = 0; error = -1; /* Default error if not error == 0 */ @@ -3058,6 +3061,33 @@ bridge_pfil(struct mbuf **mp, struct ifnet *bifp, if (*mp == NULL) return (error); +#if 1 + /* + * Did the firewall want to forward t somewhere? + * If so, let the ip stack handle it. + */ + if (i == IP_FW_PASS && args.next_hop != NULL) { + fwd_tag = m_tag_get(PACKET_TAG_IPFORWARD, + sizeof(struct sockaddr_in), M_NOWAIT); + if (fwd_tag == NULL) + goto bad; + bcopy(args.next_hop, (fwd_tag+1), + sizeof(struct sockaddr_in)); + m_tag_prepend(*mp, fwd_tag); + if (in_localip(args.next_hop->sin_addr)) + (*mp)->m_flags |= M_FASTFWD_OURS; + + /* put the Ethernet header back on */ + M_PREPEND(*mp, ETHER_HDR_LEN, M_DONTWAIT); + if (*mp == NULL) + return (error); + bcopy(&eh2, mtod(*mp, caddr_t), ETHER_HDR_LEN); + + ether_demux(bifp, *mp); + return (1); + } +#endif + if (DUMMYNET_LOADED && (i == IP_FW_DUMMYNET)) { /* put the Ethernet header back on */