[ovs-dev] [PATCH] revalidator: Don't delete non-existent flow.

Joe Stringer joestringer at nicira.com
Wed Dec 17 03:04:02 UTC 2014


If ukey_acquire() returns ENOENT, then it is unable to locate the ukey
corresponding to the flow and the flow has disappeared since it was
dumped. Don't bother deleting the flow in this case, as it will fail.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
---
 ofproto/ofproto-dpif-upcall.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
index 89de528..f0cd4cc 100644
--- a/ofproto/ofproto-dpif-upcall.c
+++ b/ofproto/ofproto-dpif-upcall.c
@@ -1857,7 +1857,9 @@ revalidate(struct revalidator *revalidator)
                     COVERAGE_INC(upcall_ukey_contention);
                 } else {
                     log_unexpected_flow(f, error);
-                    delete_op_init__(&ops[n_ops++], f);
+                    if (error != ENOENT) {
+                        delete_op_init__(&ops[n_ops++], f);
+                    }
                 }
                 continue;
             }
-- 
1.7.10.4




More information about the dev mailing list