blob: 01a2a6d24b83df3397fa8d73f5a5e51add436ef7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
/*
* linux/fs/filesystems.c
*
* Copyright (C) 1991, 1992 Linus Torvalds
*
* table of configured filesystems
*/
#include <linux/config.h>
#include <linux/fs.h>
#include <linux/minix_fs.h>
#include <linux/ext2_fs.h>
#include <linux/msdos_fs.h>
#include <linux/umsdos_fs.h>
#include <linux/proc_fs.h>
#include <linux/nfs_fs.h>
#include <linux/iso_fs.h>
#include <linux/sysv_fs.h>
#include <linux/hpfs_fs.h>
#include <linux/smb_fs.h>
#include <linux/ncp_fs.h>
#include <linux/affs_fs.h>
#include <linux/ufs_fs.h>
#include <linux/romfs_fs.h>
#include <linux/auto_fs.h>
#include <linux/ntfs_fs.h>
#include <linux/hfs_fs.h>
#include <linux/efs_fs.h>
#include <linux/major.h>
#include <linux/smp.h>
#include <linux/smp_lock.h>
#ifdef CONFIG_KERNELD
#include <linux/kerneld.h>
#endif
#include <linux/lockd/bind.h>
#include <linux/lockd/xdr.h>
#include <linux/init.h>
#include <linux/nls.h>
#ifdef CONFIG_CODA_FS
extern int init_coda_fs(void);
#endif
extern void device_setup(void);
extern void binfmt_setup(void);
extern void free_initmem(void);
__initfunc(static void do_sys_setup(void))
{
device_setup();
binfmt_setup();
#ifdef CONFIG_EXT2_FS
init_ext2_fs();
#endif
#ifdef CONFIG_MINIX_FS
init_minix_fs();
#endif
#ifdef CONFIG_ROMFS_FS
init_romfs_fs();
#endif
#ifdef CONFIG_UMSDOS_FS
init_umsdos_fs();
#endif
#ifdef CONFIG_FAT_FS
init_fat_fs();
#endif
#ifdef CONFIG_MSDOS_FS
init_msdos_fs();
#endif
#ifdef CONFIG_VFAT_FS
init_vfat_fs();
#endif
#ifdef CONFIG_PROC_FS
init_proc_fs();
#endif
#ifdef CONFIG_LOCKD
nlmxdr_init();
#endif
#ifdef CONFIG_NFS_FS
init_nfs_fs();
#endif
#ifdef CONFIG_CODA_FS
init_coda_fs();
#endif
#ifdef CONFIG_SMB_FS
init_smb_fs();
#endif
#ifdef CONFIG_NCP_FS
init_ncp_fs();
#endif
#ifdef CONFIG_ISO9660_FS
init_iso9660_fs();
#endif
#ifdef CONFIG_SYSV_FS
init_sysv_fs();
#endif
#ifdef CONFIG_HPFS_FS
init_hpfs_fs();
#endif
#ifdef CONFIG_NTFS_FS
init_ntfs_fs();
#endif
#ifdef CONFIG_HFS_FS
init_hfs_fs();
#endif
#ifdef CONFIG_AFFS_FS
init_affs_fs();
#endif
#ifdef CONFIG_UFS_FS
init_ufs_fs();
#endif
#ifdef CONFIG_AUTOFS_FS
init_autofs_fs();
#endif
#ifdef CONFIG_EFS_FS
init_efs_fs();
#endif
#ifdef CONFIG_ADFS_FS
init_adfs_fs();
#endif
#ifdef CONFIG_NLS
init_nls();
#endif
mount_root();
}
int initmem_freed = 0;
/* This may be used only twice, enforced by 'static int callable' */
asmlinkage int sys_setup(int magic)
{
static int callable = 1;
int err = -1;
lock_kernel();
if (magic) {
if (!initmem_freed) {
initmem_freed = 1;
free_initmem ();
err = 0;
}
} else if (callable) {
callable = 0;
do_sys_setup();
err = 0;
}
unlock_kernel();
return err;
}
#ifndef CONFIG_NFSD
#ifdef CONFIG_NFSD_MODULE
int (*do_nfsservctl)(int, void *, void *) = NULL;
#endif
int
asmlinkage sys_nfsservctl(int cmd, void *argp, void *resp)
{
#ifndef CONFIG_NFSD_MODULE
return -ENOSYS;
#else
int ret = -ENOSYS;
lock_kernel();
if (do_nfsservctl) {
ret = do_nfsservctl(cmd, argp, resp);
goto out;
}
#ifdef CONFIG_KERNELD
if (request_module ("nfsd") == 0) {
if (do_nfsservctl)
ret = do_nfsservctl(cmd, argp, resp);
}
#endif /* CONFIG_KERNELD */
out:
unlock_kernel();
return ret;
#endif /* CONFIG_NFSD_MODULE */
}
#endif /* CONFIG_NFSD */
|