Can you explain why this is needed? Seems that this api hasn't been used in this series.
On 2015年11月03日 19:56, zhanghailiang wrote:
Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com> Cc: Jason Wang <jasow...@redhat.com> --- v10: new patch --- include/net/filter.h | 1 + net/filter-buffer.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/net/filter.h b/include/net/filter.h index 5a09607..4499d60 100644 --- a/include/net/filter.h +++ b/include/net/filter.h @@ -74,5 +74,6 @@ ssize_t qemu_netfilter_pass_to_next(NetClientState *sender, int iovcnt, void *opaque); void filter_buffer_release_all(void); +void filter_buffer_del_all_timers(void); #endif /* QEMU_NET_FILTER_H */ diff --git a/net/filter-buffer.c b/net/filter-buffer.c index b344901..5f0ea70 100644 --- a/net/filter-buffer.c +++ b/net/filter-buffer.c @@ -178,6 +178,23 @@ void filter_buffer_release_all(void) qemu_foreach_netfilter(filter_buffer_release_packets, NULL, NULL); } +static void filter_buffer_del_timer(NetFilterState *nf, void *opaque, + Error **errp) +{ + if (!strcmp(object_get_typename(OBJECT(nf)), TYPE_FILTER_BUFFER)) { + FilterBufferState *s = FILTER_BUFFER(nf); + + if (s->interval) { + timer_del(&s->release_timer); + } + } +} + +void filter_buffer_del_all_timers(void) +{ + qemu_foreach_netfilter(filter_buffer_del_timer, NULL, NULL); +} + static void filter_buffer_init(Object *obj) { object_property_add(obj, "interval", "int",
-- Thanks, Yang