From patchwork Tue Jul 26 16:54:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikolay Aleksandrov X-Patchwork-Id: 652843 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3rzPPS1FG5z9ssM for ; Wed, 27 Jul 2016 02:55:08 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=cumulusnetworks.com header.i=@cumulusnetworks.com header.b=Vfo90eN0; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757298AbcGZQzE (ORCPT ); Tue, 26 Jul 2016 12:55:04 -0400 Received: from mail-wm0-f41.google.com ([74.125.82.41]:36358 "EHLO mail-wm0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757170AbcGZQzC (ORCPT ); Tue, 26 Jul 2016 12:55:02 -0400 Received: by mail-wm0-f41.google.com with SMTP id q128so181141149wma.1 for ; Tue, 26 Jul 2016 09:55:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rI2qGq94KQyVwzyz+iDvEVKToIbNRFeHhiveZE5HXuI=; b=Vfo90eN0hmEEexTt1X95usAhFUkeMja4JFZ4nXCLAKkPdl8IyyYD1c1drhB/tzmFot nWqKGux1a3ENPHEvBmHPnZa8cRqfVz3qcpzdB7rnoRmAU1F9xHY+ofJM1L+oklLQrqQG XDpCR2+jXMYrj8gFJRSY/fcSEtfFKvYML55yU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rI2qGq94KQyVwzyz+iDvEVKToIbNRFeHhiveZE5HXuI=; b=V9yH2rSYNYkItvNAMjDtcLsAn+xNRG52UP1K5LnS0aqunOfuTT9/5UF5pQC2jfavqc eiGvX9SkMpCC+ONyqqlLsnm6wsVkSbx56w6PEd2+EJFL8cvIXK08Mym7GMhuGh0mRv0S SpL27zcSMnTwc74K+YU/4/+MHZN6p1kd+u+FF/1bt5figiTNwXD/5Gv/8uEqdo20poE0 LWbE+KT5eooyv7EHqxSe7WWvqdPYGgEvqxER0arZOVlemKk8Jk6SyH+pY6qij4i1zq3F wDyL32K0HNEQzHwhf05SaXrOgtLNIH8Naip+z6xE393KdPyx0gGFoZ12e4aLUiQqNN0s 9FKg== X-Gm-Message-State: AEkoouttujxReb6Rw+F+aj52mNZgzRMhTBMAbA+49JTnTejaisjYrgQiBpDAYutF88ujNYdf X-Received: by 10.194.102.72 with SMTP id fm8mr22175290wjb.50.1469552100379; Tue, 26 Jul 2016 09:55:00 -0700 (PDT) Received: from localhost.localdomain (ip4-62-4-104-109.cust.nbox.cz. [62.4.104.109]) by smtp.gmail.com with ESMTPSA id ko7sm186934wjc.48.2016.07.26.09.54.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 26 Jul 2016 09:54:58 -0700 (PDT) From: Nikolay Aleksandrov To: netdev@vger.kernel.org Cc: Nikolay Aleksandrov , Roopa Prabhu , Donald Sharp , "David S. Miller" Subject: [PATCH net-next v2] net: ipmr/ip6mr: update lastuse on entry change Date: Tue, 26 Jul 2016 18:54:52 +0200 Message-Id: <1469552092-16019-1-git-send-email-nikolay@cumulusnetworks.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1469550861-13032-1-git-send-email-nikolay@cumulusnetworks.com> References: <1469550861-13032-1-git-send-email-nikolay@cumulusnetworks.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Currently lastuse is updated on entry creation and cache hit, but it should also be updated on entry change. Since both on add and update the ttl array is updated we can simply update the lastuse in ipmr_update_thresholds. Signed-off-by: Nikolay Aleksandrov CC: Roopa Prabhu CC: Donald Sharp CC: David S. Miller --- v2: instead of duplicating the lastuse update, do it while updating the thresholds which is shared by add/update net/ipv4/ipmr.c | 2 +- net/ipv6/ip6mr.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index eec234161b89..26253328d227 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -722,6 +722,7 @@ static void ipmr_update_thresholds(struct mr_table *mrt, struct mfc_cache *cache cache->mfc_un.res.maxvif = vifi + 1; } } + cache->mfc_un.res.lastuse = jiffies; } static int vif_add(struct net *net, struct mr_table *mrt, @@ -1150,7 +1151,6 @@ static int ipmr_mfc_add(struct net *net, struct mr_table *mrt, c->mfc_origin = mfc->mfcc_origin.s_addr; c->mfc_mcastgrp = mfc->mfcc_mcastgrp.s_addr; c->mfc_parent = mfc->mfcc_parent; - c->mfc_un.res.lastuse = jiffies; ipmr_update_thresholds(mrt, c, mfc->mfcc_ttls); if (!mrtsock) c->mfc_flags |= MFC_STATIC; diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index 7adce139d92a..6122f9c5cc49 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -921,6 +921,7 @@ static void ip6mr_update_thresholds(struct mr6_table *mrt, struct mfc6_cache *ca cache->mfc_un.res.maxvif = vifi + 1; } } + cache->mfc_un.res.lastuse = jiffies; } static int mif6_add(struct net *net, struct mr6_table *mrt, @@ -1500,7 +1501,6 @@ static int ip6mr_mfc_add(struct net *net, struct mr6_table *mrt, c->mf6c_origin = mfc->mf6cc_origin.sin6_addr; c->mf6c_mcastgrp = mfc->mf6cc_mcastgrp.sin6_addr; c->mf6c_parent = mfc->mf6cc_parent; - c->mfc_un.res.lastuse = jiffies; ip6mr_update_thresholds(mrt, c, ttls); if (!mrtsock) c->mfc_flags |= MFC_STATIC;