Re: [PATCH] sysfs: Don't allow the creation of symlinks we can't remove
From: Eric W. Biederman <hidden>
Date: 2010-07-22 10:35:37
Johannes Berg [off-list ref] writes:
On Thu, 2010-07-22 at 03:05 -0700, Eric W. Biederman wrote:quoted
quoted
quoted
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.Hmm, I didn't.
To be clear I just get hwsim0. Not wlan0 or wlan1.
quoted
quoted
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.But then I was carrying those two patches too.quoted
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.Right, it actually starts working again with that patch you sent. However, netns support is really broken: <create net namespace, put phy0/wlan0 into it>
Do we have a convenient command line tool to do this? I remember there being a different netlink message from normal network devices.
root@kvm:~# ip link
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
7: lo: <LOOPBACK> mtu 16436 qdisc noop state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
root@kvm:~# ls /sys/class/net/
eth0 hwsim0 lo wlan1 wlan2I think this is actually the output of something working. I expect after you created a new netns you didn't mount a new instance of /sys. /sys remembers which netns you had when you mounted it. So you have to mount /sys again so you can see the /sys/class/net for the network namespace you are in. Eric