lkml.org 
[lkml]   [2008]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 7/8] Do not recompute msgmni anymore if explicitely set by user
    Andrew Morton wrote:
    > On Mon, 11 Feb 2008 15:16:53 +0100
    > Nadia.Derbey@bull.net wrote:
    >
    >
    >>[PATCH 07/08]
    >>
    >>This patch makes msgmni not recomputed anymore upon ipc namespace creation /
    >>removal or memory add/remove, as soon as it has been set from userland.
    >>
    >>As soon as msgmni is explicitely set via procfs or sysctl(), the associated
    >>callback routine is unregistered from the ipc namespace notifier chain.
    >>
    >
    >
    > The patch series looks pretty good.
    >
    >
    >>===================================================================
    >>--- linux-2.6.24-mm1.orig/ipc/ipc_sysctl.c 2008-02-08 16:07:15.000000000 +0100
    >>+++ linux-2.6.24-mm1/ipc/ipc_sysctl.c 2008-02-08 16:08:32.000000000 +0100
    >>@@ -35,6 +35,24 @@ static int proc_ipc_dointvec(ctl_table *
    >> return proc_dointvec(&ipc_table, write, filp, buffer, lenp, ppos);
    >> }
    >>
    >>+static int proc_ipc_callback_dointvec(ctl_table *table, int write,
    >>+ struct file *filp, void __user *buffer, size_t *lenp, loff_t *ppos)
    >>+{
    >>+ size_t lenp_bef = *lenp;
    >>+ int rc;
    >>+
    >>+ rc = proc_ipc_dointvec(table, write, filp, buffer, lenp, ppos);
    >>+
    >>+ if (write && !rc && lenp_bef == *lenp)
    >>+ /*
    >>+ * Tunable has successfully been changed from userland:
    >>+ * disable its automatic recomputing.
    >>+ */
    >>+ unregister_ipcns_notifier(current->nsproxy->ipc_ns);
    >>+
    >>+ return rc;
    >>+}
    >
    >
    > If you haven't done so, could you please check that it all builds cleanly
    > with CONFIG_PROCFS=n, and that all code which isn't needed if procfs is
    > disabled is not present in the final binary?
    >
    >
    >
    >

    Andrew,

    it builds fine, modulo some changes in ipv4 and ipv6 (see attached patch
    - didn't find it in the hot fixes).

    Regards,
    Nadia

    Fix header files to let IPV4 and IPV6 build if CONFIG_PROC_FS=n

    Signed-off-by: Nadia Derbey <Nadia.Derbey@bull.net>

    ---
    include/net/ip_fib.h | 13 ++++++++++++-
    include/net/ipv6.h | 6 +++---
    2 files changed, 15 insertions(+), 4 deletions(-)

    Index: linux-2.6.24-mm1/include/net/ip_fib.h
    ===================================================================
    --- linux-2.6.24-mm1.orig/include/net/ip_fib.h 2008-02-12 11:03:40.000000000 +0100
    +++ linux-2.6.24-mm1/include/net/ip_fib.h 2008-02-12 11:09:40.000000000 +0100
    @@ -266,6 +266,17 @@ static inline void fib_res_put(struct fi
    #ifdef CONFIG_PROC_FS
    extern int __net_init fib_proc_init(struct net *net);
    extern void __net_exit fib_proc_exit(struct net *net);
    -#endif
    +#else /* CONFIG_PROC_FS */
    +static inline int fib_proc_init(struct net *net)
    +{
    + return 0;
    +}
    +
    +static inline int fib_proc_exit(struct net *net)
    +{
    + return 0;
    +}
    +
    +#endif /* CONFIG_PROC_FS */

    #endif /* _NET_FIB_H */
    Index: linux-2.6.24-mm1/include/net/ipv6.h
    ===================================================================
    --- linux-2.6.24-mm1.orig/include/net/ipv6.h 2008-02-07 13:40:38.000000000 +0100
    +++ linux-2.6.24-mm1/include/net/ipv6.h 2008-02-12 11:16:27.000000000 +0100
    @@ -586,9 +586,6 @@ extern int ip6_mc_msfget(struct sock *sk
    int __user *optlen);

    #ifdef CONFIG_PROC_FS
    -extern struct ctl_table *ipv6_icmp_sysctl_init(struct net *net);
    -extern struct ctl_table *ipv6_route_sysctl_init(struct net *net);
    -
    extern int ac6_proc_init(void);
    extern void ac6_proc_exit(void);
    extern int raw6_proc_init(void);
    @@ -621,6 +618,9 @@ static inline int snmp6_unregister_dev(s
    extern ctl_table ipv6_route_table_template[];
    extern ctl_table ipv6_icmp_table_template[];

    +extern struct ctl_table *ipv6_icmp_sysctl_init(struct net *net);
    +extern struct ctl_table *ipv6_route_sysctl_init(struct net *net);
    +
    extern int ipv6_sysctl_register(void);
    extern void ipv6_sysctl_unregister(void);
    #endif
    \
     
     \ /
      Last update: 2008-02-12 10:37    [W:0.026 / U:1.084 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site