On Mon, 2012-10-22 at 17:47 -0400, Brian Haley wrote:
On 10/22/2012 05:37 PM, Eric Dumazet wrote:
quoted
On Mon, 2012-10-22 at 17:20 -0400, Brian Haley wrote:
quoted
It's not much different from what's there:
setsockopt("foo");
rename foo -> bar
index = getsockopt();
if_indextoname(index) -> "bar"
I more raised the issue since you pass a 'char *' to setsockopt() but an 'int *'
to getsockopt(), I don't think any other value is non-symmetrical like this.
-Brian
I meant another cpu can be changing dev->name[] content while the
strcpy() is done, and you get a mangled devname, like "for" or "bao"
instead of "foo" or "bar"
Even when holding the rcu_read_lock()? I'd have to hold the rtnl lock there?
Yes, rcu_read_lock() only makes sure the device doesnt disappear.
But its name can be changed.
You could use a seqcount_t, so that readers dont have to lock rtnl.
But do we really want to return a name here, I am not yet convinced.