Module Name: src Committed By: rmind Date: Sun Oct 3 19:36:39 UTC 2010
Modified Files: src/sys/net/npf: npf_session.c Log Message: - npf_session_gc: fix for previous RB-tree conversion. - npf_session_free: rename (to singular). To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/net/npf/npf_session.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/npf/npf_session.c diff -u src/sys/net/npf/npf_session.c:1.3 src/sys/net/npf/npf_session.c:1.4 --- src/sys/net/npf/npf_session.c:1.3 Fri Sep 24 22:51:50 2010 +++ src/sys/net/npf/npf_session.c Sun Oct 3 19:36:38 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_session.c,v 1.3 2010/09/24 22:51:50 rmind Exp $ */ +/* $NetBSD: npf_session.c,v 1.4 2010/10/03 19:36:38 rmind Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -85,7 +85,7 @@ #ifdef _KERNEL #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: npf_session.c,v 1.3 2010/09/24 22:51:50 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: npf_session.c,v 1.4 2010/10/03 19:36:38 rmind Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -743,6 +743,7 @@ /* Get item, pre-iterate, skip if not expired. */ nse = rb_tree_iterate(&sh->sh_tree, se, RB_DIR_RIGHT); if (!npf_session_expired(se, &tsnow) && !flushall) { + se = nse; continue; } @@ -767,11 +768,11 @@ } /* - * npf_sessions_free: destroy all sessions in the G/C list, which + * npf_session_free: destroy all sessions in the G/C list, which * have no references. Return true, if list is empty. */ static void -npf_sessions_free(struct npf_sesslist *gc_list) +npf_session_free(struct npf_sesslist *gc_list) { npf_session_t *se, *nse; @@ -815,14 +816,14 @@ /* Flush all if session tracking got disabled. */ npf_session_gc(&gc_list, flushreq); - npf_sessions_free(&gc_list); + npf_session_free(&gc_list); } while (sess_tracking); /* Wait for any referenced sessions to be released. */ while (!LIST_EMPTY(&gc_list)) { kpause("npfgcfr", false, 1, NULL); - npf_sessions_free(&gc_list); + npf_session_free(&gc_list); } /* Notify that we are done. */