Re: [PATCH] sysfs: Don't allow the creation of symlinks we can't remove
From: Eric W. Biederman <hidden>
Date: 2010-07-22 10:05:08
Johannes Berg [off-list ref] writes:
On Thu, 2010-07-08 at 09:31 -0700, Eric W. Biederman wrote:quoted
Recently my tagged sysfs support revealed a flaw in the device core that a few rare drivers are running into such that we don't always put network devices in a class subdirectory named net/. Since we are not creating the class directory the network devices wind up in a non-tagged directory, but the symlinks to the network devices from /sys/class/net are in a tagged directory. All of which works until we go to remove or rename the symlink. When we remove or rename a symlink we look in the namespace of the target of the symlink. Since the target of the symlink is in a non-tagged sysfs directory we don't have a namespace to look in, and we fail to remove the symlink. Detect this problem up front and simply don't create symlinks we won't be able to remove later. This prevents symlink leakage and fails in a much clearer and more understandable way.Eric, I was looking into sysfs netns support for wireless, and with this patch applied I just get the warning and no network interfaces.
The warning patch just makes things fail faster. Although I get some of the wireless interfaces for hwsim when I use this one.
Was there any patch that was supposed to fix hwsim?
- If you have my patches that fix CONFIG_SYSFS_DEPRECATED, you should find everything works there. As for a proper fix I have just resent my one liner to drives/base/core.c I can't think of a better option right now. For hwsim it is arguable, but the behaviour of sysfs for the bluetooth bnep driver is very clearly a 3 year old regression, and the cause is exactly the same. Eric