From patchwork Thu Jul 10 21:01:04 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Gundersen X-Patchwork-Id: 368789 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 7880214011B for ; Fri, 11 Jul 2014 07:01:48 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752598AbaGJVBd (ORCPT ); Thu, 10 Jul 2014 17:01:33 -0400 Received: from mail-wg0-f44.google.com ([74.125.82.44]:55473 "EHLO mail-wg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752584AbaGJVBZ (ORCPT ); Thu, 10 Jul 2014 17:01:25 -0400 Received: by mail-wg0-f44.google.com with SMTP id m15so145022wgh.27 for ; Thu, 10 Jul 2014 14:01:24 -0700 (PDT) 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=0VrOzO4x5FbBzmxHLjwRtpV8ir+Q7C3YNGmrUgcJ6Gg=; b=SoRn0pDPJ4UsteM1x1h9NPyxau8ctqJTtFaBVm9UoLp5fD4GlY/fumgHPSupnYzAnd nMQVDKe0FwYBKAmD9uWGrrjeM2sTvtnTh55kNIkRUlQ3mla+4AofGf11ecA6I2ebivuT b0fh+pILrIyv91Wlu7ppIfUJtfC44WIRF/c5WUU/h6fSccOGQ4YaQY91Re8W9PhQMDNo xwjXaE76eFPmuzBP+InLoW/CjGp034qdnZe81kuD0Ldy6HScIMvTqaf4XbOGwGaS0COY ARNdcXzEec10RqOWAz2I91/R2g1iTChQh2RmFd1eK/EeN1jngryWCoyA2yw2BEnMZanZ lNDQ== X-Gm-Message-State: ALoCoQkG5ivvkH/YE3nQdYEoe97PxSWZDDJwggjWRRn1xF+tEGn8iYQaz9KuDJ2fsIv9pfhDtxiQ X-Received: by 10.180.86.199 with SMTP id r7mr100761wiz.20.1405026084171; Thu, 10 Jul 2014 14:01:24 -0700 (PDT) Received: from localhost.localdomain (cm-84.208.72.173.getinternet.no. [84.208.72.173]) by mx.google.com with ESMTPSA id cd1sm600114wjc.19.2014.07.10.14.01.22 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 Jul 2014 14:01:23 -0700 (PDT) From: Tom Gundersen To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, David Miller , David Herrmann , Kay Sievers , Tom Gundersen Subject: [PATCH v8 2/4] net: set name assign type for renamed devices Date: Thu, 10 Jul 2014 23:01:04 +0200 Message-Id: <1405026066-2547-3-git-send-email-teg@jklm.no> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1405026066-2547-1-git-send-email-teg@jklm.no> References: <1405026066-2547-1-git-send-email-teg@jklm.no> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Based on a patch from David Herrmann. This is the only place devices can be renamed. Signed-off-by: Tom Gundersen Reviewed-by: David Herrmann --- net/core/dev.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c index 392c784..5d7b2a6 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1083,6 +1083,7 @@ static int dev_get_valid_name(struct net *net, int dev_change_name(struct net_device *dev, const char *newname) { char oldname[IFNAMSIZ]; + unsigned char old_assign_type; int err = 0; int ret; struct net *net; @@ -1109,10 +1110,14 @@ int dev_change_name(struct net_device *dev, const char *newname) return err; } + old_assign_type = dev->name_assign_type; + dev->name_assign_type = NET_NAME_RENAMED; + rollback: ret = device_rename(&dev->dev, dev->name); if (ret) { memcpy(dev->name, oldname, IFNAMSIZ); + dev->name_assign_type = old_assign_type; write_seqcount_end(&devnet_rename_seq); return ret; } @@ -1141,6 +1146,8 @@ rollback: write_seqcount_begin(&devnet_rename_seq); memcpy(dev->name, oldname, IFNAMSIZ); memcpy(oldname, newname, IFNAMSIZ); + dev->name_assign_type = old_assign_type; + old_assign_type = NET_NAME_RENAMED; goto rollback; } else { pr_err("%s: name change rollback failed: %d\n",