[<prev] [next>] [day] [month] [year] [list]
Message-ID: <AANLkTi=0TPbaRwiegTbuff7dc+wqjDwqpyQ4eizbboik@mail.gmail.com>
Date: Fri, 28 Jan 2011 08:12:12 +0200
From: Lucian Adrian Grijincu <lucian.grijincu@...il.com>
To: netdev@...r.kernel.org
Cc: Alexey Dobriyan <adobriyan@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>,
Patrick McHardy <kaber@...sh.net>,
Nick Piggin <npiggin@...nel.dk>,
Al Viro <viro@...iv.linux.org.uk>,
Christoph Hellwig <hch@....de>,
Dave Chinner <dchinner@...hat.com>,
Eric Dumazet <eric.dumazet@...il.com>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
Thomas Graf <tgraf@...radead.org>
Subject: [PATCH 2/2] RFCv2: ipv4: share sysctl net/ipv4/conf/DEVNAME/ tables
Before this, for each network device DEVNAME that supports ipv4 a new
sysctl table was registered in $PROC/sys/net/ipv4/conf/DEVNAME/.
The sysctl table was identical for all network devices, except for:
* data: pointer to the data to be accessed in the sysctl
* extra1: the 'struct ipv4_devconf*' of the network device
* extra2: the 'struct net*' of the network namespace
Assuming we have a device name and a 'struct net*', we can get the
'struct net_device*'. From there we can compute:
* data:
* extra1: 'struct ipv4_devconf*' can be reached from 'struct net_device*'
* extra2: the 'struct net*' that we assume we have
The device name is determined from the path to the file (the name of
the parent dentry).
The 'struct net*' is stored in the parent 'struct ctl_table*' path by
register_net_sysctl_table_pathdata().
NOTE: this breaks ctl_table->parent: the last registered net device
will be the parent of any $PROC/sys/net/ipv4/conf/DEVNAME/$CTL
ctl_table and selinux may behave in a wrong way because of this.
This is just a RFC patch at the moment.
Signed-off-by: Lucian Adrian Grijincu <lucian.grijincu@...il.com>
---
fs/proc/proc_sysctl.c | 16 +++-
include/linux/inetdevice.h | 12 +++-
net/ipv4/devinet.c | 203 +++++++++++++++++++++++++++++---------------
3 files changed, 161 insertions(+), 70 deletions(-)
View attachment "0002-RFCv2-ipv4-share-sysctl-net-ipv4-conf-DEVNAME-tables.patch" of type "text/x-patch" (12417 bytes)
Powered by blists - more mailing lists