Ver Fonte

[PATCH] take init_files to fs/file.c

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro há 17 anos atrás
pai
commit
f52111b154

+ 0 - 1
arch/alpha/kernel/init_task.c

@@ -9,7 +9,6 @@
 
 
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/arm/kernel/init_task.c

@@ -13,7 +13,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/avr32/kernel/init_task.c

@@ -14,7 +14,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/blackfin/kernel/init_task.c

@@ -34,7 +34,6 @@
 #include <linux/fs.h>
 #include <linux/fs.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 
 

+ 0 - 1
arch/cris/kernel/process.c

@@ -38,7 +38,6 @@
  */
  */
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/frv/kernel/init_task.c

@@ -11,7 +11,6 @@
 
 
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/h8300/kernel/init_task.c

@@ -13,7 +13,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/ia64/kernel/init_task.c

@@ -18,7 +18,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/m32r/kernel/init_task.c

@@ -12,7 +12,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/m68k/kernel/process.c

@@ -41,7 +41,6 @@
  * setup.
  * setup.
  */
  */
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/m68knommu/kernel/init_task.c

@@ -13,7 +13,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/mips/kernel/init_task.c

@@ -10,7 +10,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/mn10300/kernel/init_task.c

@@ -19,7 +19,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/parisc/kernel/init_task.c

@@ -35,7 +35,6 @@
 #include <asm/pgalloc.h>
 #include <asm/pgalloc.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/powerpc/kernel/init_task.c

@@ -8,7 +8,6 @@
 #include <asm/uaccess.h>
 #include <asm/uaccess.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/s390/kernel/init_task.c

@@ -17,7 +17,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/sh/kernel/init_task.c

@@ -8,7 +8,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct pt_regs fake_swapper_regs;
 struct pt_regs fake_swapper_regs;

+ 0 - 1
arch/sparc/kernel/init_task.c

@@ -9,7 +9,6 @@
 #include <asm/uaccess.h>
 #include <asm/uaccess.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/sparc64/kernel/init_task.c

@@ -10,7 +10,6 @@
 #include <asm/processor.h>
 #include <asm/processor.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/um/kernel/init_task.c

@@ -12,7 +12,6 @@
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 EXPORT_SYMBOL(init_mm);
 EXPORT_SYMBOL(init_mm);

+ 0 - 1
arch/v850/kernel/init_task.c

@@ -21,7 +21,6 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS (init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS (init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM (init_mm);
 struct mm_struct init_mm = INIT_MM (init_mm);

+ 0 - 1
arch/x86/kernel/init_task.c

@@ -11,7 +11,6 @@
 #include <asm/desc.h>
 #include <asm/desc.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 0 - 1
arch/xtensa/kernel/init_task.c

@@ -22,7 +22,6 @@
 #include <asm/uaccess.h>
 #include <asm/uaccess.h>
 
 
 static struct fs_struct init_fs = INIT_FS;
 static struct fs_struct init_fs = INIT_FS;
-static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct mm_struct init_mm = INIT_MM(init_mm);

+ 13 - 0
fs/file.c

@@ -275,3 +275,16 @@ void __init files_defer_init(void)
 	for_each_possible_cpu(i)
 	for_each_possible_cpu(i)
 		fdtable_defer_list_init(i);
 		fdtable_defer_list_init(i);
 }
 }
+
+struct files_struct init_files = {
+	.count		= ATOMIC_INIT(1),
+	.fdt		= &init_files.fdtab,
+	.fdtab		= {
+		.max_fds	= NR_OPEN_DEFAULT,
+		.fd		= &init_files.fd_array[0],
+		.close_on_exec	= (fd_set *)&init_files.close_on_exec_init,
+		.open_fds	= (fd_set *)&init_files.open_fds_init,
+		.rcu		= RCU_HEAD_INIT,
+	},
+	.file_lock	= __SPIN_LOCK_UNLOCKED(init_task.file_lock),
+};

+ 1 - 22
include/linux/init_task.h

@@ -1,7 +1,6 @@
 #ifndef _LINUX__INIT_TASK_H
 #ifndef _LINUX__INIT_TASK_H
 #define _LINUX__INIT_TASK_H
 #define _LINUX__INIT_TASK_H
 
 
-#include <linux/fdtable.h>
 #include <linux/rcupdate.h>
 #include <linux/rcupdate.h>
 #include <linux/irqflags.h>
 #include <linux/irqflags.h>
 #include <linux/utsname.h>
 #include <linux/utsname.h>
@@ -12,27 +11,7 @@
 #include <linux/securebits.h>
 #include <linux/securebits.h>
 #include <net/net_namespace.h>
 #include <net/net_namespace.h>
 
 
-#define INIT_FDTABLE \
-{							\
-	.max_fds	= NR_OPEN_DEFAULT, 		\
-	.fd		= &init_files.fd_array[0], 	\
-	.close_on_exec	= (fd_set *)&init_files.close_on_exec_init, \
-	.open_fds	= (fd_set *)&init_files.open_fds_init, 	\
-	.rcu		= RCU_HEAD_INIT, 		\
-	.next		= NULL,		 		\
-}
-
-#define INIT_FILES \
-{ 							\
-	.count		= ATOMIC_INIT(1), 		\
-	.fdt		= &init_files.fdtab, 		\
-	.fdtab		= INIT_FDTABLE,			\
-	.file_lock	= __SPIN_LOCK_UNLOCKED(init_task.file_lock), \
-	.next_fd	= 0, 				\
-	.close_on_exec_init = { { 0, } }, 		\
-	.open_fds_init	= { { 0, } }, 			\
-	.fd_array	= { NULL, } 			\
-}
+extern struct files_struct init_files;
 
 
 #define INIT_KIOCTX(name, which_mm) \
 #define INIT_KIOCTX(name, which_mm) \
 {							\
 {							\