From: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Date: Wed, 23 Apr 2025 17:44:45 +0200 > On Mon, 2025-04-07 at 15:53 +0300, Ivan Abramov wrote: > > Currently, the return value of device_rename() is not acted upon. > > > > To avoid an inconsistent state in case of failure, roll back the changes > > made before the device_rename() call. > > This kind of seems complicated for something that ought to not happen > ... > > And also (+netdev), what do we do in case this is called from > cfg80211_pernet_exit() - leak the whole network namespace because we > couldn't allocate memory for the name? That seems counterproductive. default_device_exit_net() does BUG() in such a case, it doens't assume -ENOMEM as we are freeing memory in the netns dismantle. static void __net_exit default_device_exit_net(struct net *net) { ... for_each_netdev_safe(net, dev, aux) { ... err = dev_change_net_namespace(dev, &init_net, fb_name); if (err) { pr_emerg("%s: failed to move %s to init_net: %d\n", __func__, dev->name, err); BUG(); } } }