Thread (61 messages) 61 messages, 7 authors, 2010-07-28

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  wlan2
I 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help