Loading...
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 | /* * 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/major.h> #include <linux/smp.h> #include <linux/smp_lock.h> #ifdef CONFIG_KERNELD #include <linux/kerneld.h> #endif extern void device_setup(void); extern void binfmt_setup(void); extern void free_initmem(void); /* This may be used only once, enforced by 'static int callable' */ asmlinkage int sys_setup(void) { static int callable = 1; int err = -1; lock_kernel(); if (!callable) goto out; callable = 0; 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_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_AFFS_FS init_affs_fs(); #endif #ifdef CONFIG_UFS_FS init_ufs_fs(); #endif #ifdef CONFIG_AUTOFS_FS init_autofs_fs(); #endif mount_root(); free_initmem(); err = 0; out: 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 */ |