From patchwork Fri Apr 8 16:03:28 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 608073 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 3qhPQw3Jn1z9t5h for ; Sat, 9 Apr 2016 02:04:08 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=MAlcG3Em; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932574AbcDHQDr (ORCPT ); Fri, 8 Apr 2016 12:03:47 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:36429 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932200AbcDHQDp (ORCPT ); Fri, 8 Apr 2016 12:03:45 -0400 Received: by mail-pf0-f196.google.com with SMTP id q129so9760498pfb.3 for ; Fri, 08 Apr 2016 09:03:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=qcnwfVdLNpdeZuVltPaWSE3zfo2Bg3qikH4nnxhsKWI=; b=MAlcG3Emw1xWN+jQkIsBwj3Jb4SFEcfaVWpKOFKPUwiVEe3Kwlnr6nREsJTNhYymK0 VFrDAxRCdeop230lCDyQdIfCrZ2nYbc5Got54sf9weddzXl7y2tSsQmenFOUU17XPMkx zb0kRPDzuyXMNxh5RQEF4Opru/PBkVMW7r10xr/jfYjtr6OD1oEkoQc19pX8tJHou5re zahM3fsflLOuVw2kWbxNBHdgkNdjEKqyKPhB/J4Ua0KLeDKDV/VqXQBBotphTZvQh0+1 Jo7ku6Rgt1XxQVlkCE1VHBHxKd/w4gX7mEDAlKN/ZhH6fHC4wwFrbaheheiP7NcO1f8q XRmA== 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:in-reply-to:references; bh=qcnwfVdLNpdeZuVltPaWSE3zfo2Bg3qikH4nnxhsKWI=; b=QLjkX+dnt7MlUPAA025D8pajSm2ZHKP6UQZAUF1kX2a8oCylJQ1sc3xHucBl03SpCY 1LVxCWJ9H1BtBoVc0jc/5R88Msj/RgZRU3VXI+KAl2lgCbWHoPHxOHH2Po2Fmc/f1VAM LP3jAMGnABI9LD2JWyfy3LnyIrkJHusfRsmgCM/ECtYxhuHBC0MPPRfOhnhrE+7Izck7 V9rNVl8BcWuAEK1knO8EnwwRJh+gyxqouI5HiZ7vpSPgzG4czI+1hBRN77naV2YFhnyY kZPhulOhzbR0AAXYhh1hvnxpc9hikqI2TMxSMZjusBwwL5Sj09luW8sl74p2JKehE86p 6SoA== X-Gm-Message-State: AD7BkJIIn/5p8RnRuZmM8V8xuqmQ9CwUBfoeuoheNGZ+dpzWeDv5GK+e3PDYD4Muqqk6Xw== X-Received: by 10.98.34.18 with SMTP id i18mr13813620pfi.26.1460131424685; Fri, 08 Apr 2016 09:03:44 -0700 (PDT) Received: from localhost (138.128.208.20.16clouds.com. [138.128.208.20]) by smtp.gmail.com with ESMTPSA id a22sm19713748pfj.2.2016.04.08.09.03.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2016 09:03:43 -0700 (PDT) From: Xin Long To: network dev , bridge@lists.linux-foundation.org Cc: davem@davemloft.net, Stephen Hemminger , nikolay@cumulusnetworks.com Subject: [PATCHv3 net-next 1/6] bridge: simplify the flush_store by calling store_bridge_parm Date: Sat, 9 Apr 2016 00:03:28 +0800 Message-Id: <6e2cf6821542a253904dfc7d8ec431d6bbda2b4e.1460131308.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org There are some repetitive codes in flush_store, we can remove them by calling store_bridge_parm, also, it would send rtnl notification after we add it in store_bridge_parm in the following patches. Signed-off-by: Xin Long Reviewed-by: Nikolay Aleksandrov --- net/bridge/br_sysfs_br.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c index 6b80914..c48f6b0 100644 --- a/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c @@ -336,17 +336,17 @@ static ssize_t group_addr_store(struct device *d, static DEVICE_ATTR_RW(group_addr); +static int set_flush(struct net_bridge *br, unsigned long val) +{ + br_fdb_flush(br); + return 0; +} + static ssize_t flush_store(struct device *d, struct device_attribute *attr, const char *buf, size_t len) { - struct net_bridge *br = to_bridge(d); - - if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) - return -EPERM; - - br_fdb_flush(br); - return len; + return store_bridge_parm(d, buf, len, set_flush); } static DEVICE_ATTR_WO(flush);