net: Add support for batching network namespace cleanups
[firefly-linux-kernel-4.4.55.git] / include / net / net_namespace.h
index 0addd45038ac59027565f7c5a57f86ec1be88d2b..f307e133d14c77567306dc7089630b75d9edb743 100644 (file)
@@ -42,7 +42,8 @@ struct net {
                                                 */
 #endif
        struct list_head        list;           /* list of network namespaces */
-       struct work_struct      work;           /* work struct for freeing */
+       struct list_head        cleanup_list;   /* namespaces on death row */
+       struct list_head        exit_list;      /* Use only net_mutex */
 
        struct proc_dir_entry   *proc_net;
        struct proc_dir_entry   *proc_net_stat;
@@ -236,6 +237,9 @@ struct pernet_operations {
        struct list_head list;
        int (*init)(struct net *net);
        void (*exit)(struct net *net);
+       void (*exit_batch)(struct list_head *net_exit_list);
+       int *id;
+       size_t size;
 };
 
 /*
@@ -259,12 +263,8 @@ struct pernet_operations {
  */
 extern int register_pernet_subsys(struct pernet_operations *);
 extern void unregister_pernet_subsys(struct pernet_operations *);
-extern int register_pernet_gen_subsys(int *id, struct pernet_operations *);
-extern void unregister_pernet_gen_subsys(int id, struct pernet_operations *);
 extern int register_pernet_device(struct pernet_operations *);
 extern void unregister_pernet_device(struct pernet_operations *);
-extern int register_pernet_gen_device(int *id, struct pernet_operations *);
-extern void unregister_pernet_gen_device(int id, struct pernet_operations *);
 
 struct ctl_path;
 struct ctl_table;