diff options
| -rw-r--r-- | fs/configfs/inode.c | 2 | ||||
| -rw-r--r-- | fs/configfs/mount.c | 36 | ||||
| -rw-r--r-- | fs/fuse/inode.c | 24 | ||||
| -rw-r--r-- | fs/ncpfs/inode.c | 8 | ||||
| -rw-r--r-- | fs/proc/root.c | 8 | ||||
| -rw-r--r-- | fs/ubifs/super.c | 18 | ||||
| -rw-r--r-- | ipc/mqueue.c | 8 | ||||
| -rw-r--r-- | ipc/msgutil.c | 5 |
8 files changed, 48 insertions, 61 deletions
diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c index ca418aaf6352..9d8715c45f25 100644 --- a/fs/configfs/inode.c +++ b/fs/configfs/inode.c | |||
| @@ -292,7 +292,7 @@ int __init configfs_inode_init(void) | |||
| 292 | return bdi_init(&configfs_backing_dev_info); | 292 | return bdi_init(&configfs_backing_dev_info); |
| 293 | } | 293 | } |
| 294 | 294 | ||
| 295 | void __exit configfs_inode_exit(void) | 295 | void configfs_inode_exit(void) |
| 296 | { | 296 | { |
| 297 | bdi_destroy(&configfs_backing_dev_info); | 297 | bdi_destroy(&configfs_backing_dev_info); |
| 298 | } | 298 | } |
diff --git a/fs/configfs/mount.c b/fs/configfs/mount.c index ecc62178beda..276e15cafd58 100644 --- a/fs/configfs/mount.c +++ b/fs/configfs/mount.c | |||
| @@ -143,28 +143,26 @@ static int __init configfs_init(void) | |||
| 143 | goto out; | 143 | goto out; |
| 144 | 144 | ||
| 145 | config_kobj = kobject_create_and_add("config", kernel_kobj); | 145 | config_kobj = kobject_create_and_add("config", kernel_kobj); |
| 146 | if (!config_kobj) { | 146 | if (!config_kobj) |
| 147 | kmem_cache_destroy(configfs_dir_cachep); | 147 | goto out2; |
| 148 | configfs_dir_cachep = NULL; | 148 | |
| 149 | goto out; | 149 | err = configfs_inode_init(); |
| 150 | } | 150 | if (err) |
| 151 | goto out3; | ||
| 151 | 152 | ||
| 152 | err = register_filesystem(&configfs_fs_type); | 153 | err = register_filesystem(&configfs_fs_type); |
| 153 | if (err) { | 154 | if (err) |
| 154 | printk(KERN_ERR "configfs: Unable to register filesystem!\n"); | 155 | goto out4; |
| 155 | kobject_put(config_kobj); | ||
| 156 | kmem_cache_destroy(configfs_dir_cachep); | ||
| 157 | configfs_dir_cachep = NULL; | ||
| 158 | goto out; | ||
| 159 | } | ||
| 160 | 156 | ||
| 161 | err = configfs_inode_init(); | 157 | return 0; |
| 162 | if (err) { | 158 | out4: |
| 163 | unregister_filesystem(&configfs_fs_type); | 159 | printk(KERN_ERR "configfs: Unable to register filesystem!\n"); |
| 164 | kobject_put(config_kobj); | 160 | configfs_inode_exit(); |
| 165 | kmem_cache_destroy(configfs_dir_cachep); | 161 | out3: |
| 166 | configfs_dir_cachep = NULL; | 162 | kobject_put(config_kobj); |
| 167 | } | 163 | out2: |
| 164 | kmem_cache_destroy(configfs_dir_cachep); | ||
| 165 | configfs_dir_cachep = NULL; | ||
| 168 | out: | 166 | out: |
| 169 | return err; | 167 | return err; |
| 170 | } | 168 | } |
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 3e6d72756479..aa83109b9431 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
| @@ -1138,28 +1138,28 @@ static int __init fuse_fs_init(void) | |||
| 1138 | { | 1138 | { |
| 1139 | int err; | 1139 | int err; |
| 1140 | 1140 | ||
| 1141 | err = register_filesystem(&fuse_fs_type); | ||
| 1142 | if (err) | ||
| 1143 | goto out; | ||
| 1144 | |||
| 1145 | err = register_fuseblk(); | ||
| 1146 | if (err) | ||
| 1147 | goto out_unreg; | ||
| 1148 | |||
| 1149 | fuse_inode_cachep = kmem_cache_create("fuse_inode", | 1141 | fuse_inode_cachep = kmem_cache_create("fuse_inode", |
| 1150 | sizeof(struct fuse_inode), | 1142 | sizeof(struct fuse_inode), |
| 1151 | 0, SLAB_HWCACHE_ALIGN, | 1143 | 0, SLAB_HWCACHE_ALIGN, |
| 1152 | fuse_inode_init_once); | 1144 | fuse_inode_init_once); |
| 1153 | err = -ENOMEM; | 1145 | err = -ENOMEM; |
| 1154 | if (!fuse_inode_cachep) | 1146 | if (!fuse_inode_cachep) |
| 1155 | goto out_unreg2; | 1147 | goto out; |
| 1148 | |||
| 1149 | err = register_fuseblk(); | ||
| 1150 | if (err) | ||
| 1151 | goto out2; | ||
| 1152 | |||
| 1153 | err = register_filesystem(&fuse_fs_type); | ||
| 1154 | if (err) | ||
| 1155 | goto out3; | ||
| 1156 | 1156 | ||
| 1157 | return 0; | 1157 | return 0; |
| 1158 | 1158 | ||
| 1159 | out_unreg2: | 1159 | out3: |
| 1160 | unregister_fuseblk(); | 1160 | unregister_fuseblk(); |
| 1161 | out_unreg: | 1161 | out2: |
| 1162 | unregister_filesystem(&fuse_fs_type); | 1162 | kmem_cache_destroy(fuse_inode_cachep); |
| 1163 | out: | 1163 | out: |
| 1164 | return err; | 1164 | return err; |
| 1165 | } | 1165 | } |
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index 5b5fa33b6b9d..cbd1a61c110a 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
| @@ -548,7 +548,7 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent) | |||
| 548 | 548 | ||
| 549 | error = bdi_setup_and_register(&server->bdi, "ncpfs", BDI_CAP_MAP_COPY); | 549 | error = bdi_setup_and_register(&server->bdi, "ncpfs", BDI_CAP_MAP_COPY); |
| 550 | if (error) | 550 | if (error) |
| 551 | goto out_bdi; | 551 | goto out_fput; |
| 552 | 552 | ||
| 553 | server->ncp_filp = ncp_filp; | 553 | server->ncp_filp = ncp_filp; |
| 554 | server->ncp_sock = sock; | 554 | server->ncp_sock = sock; |
| @@ -559,7 +559,7 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent) | |||
| 559 | error = -EBADF; | 559 | error = -EBADF; |
| 560 | server->info_filp = fget(data.info_fd); | 560 | server->info_filp = fget(data.info_fd); |
| 561 | if (!server->info_filp) | 561 | if (!server->info_filp) |
| 562 | goto out_fput; | 562 | goto out_bdi; |
| 563 | error = -ENOTSOCK; | 563 | error = -ENOTSOCK; |
| 564 | sock_inode = server->info_filp->f_path.dentry->d_inode; | 564 | sock_inode = server->info_filp->f_path.dentry->d_inode; |
| 565 | if (!S_ISSOCK(sock_inode->i_mode)) | 565 | if (!S_ISSOCK(sock_inode->i_mode)) |
| @@ -746,9 +746,9 @@ out_nls: | |||
| 746 | out_fput2: | 746 | out_fput2: |
| 747 | if (server->info_filp) | 747 | if (server->info_filp) |
| 748 | fput(server->info_filp); | 748 | fput(server->info_filp); |
| 749 | out_fput: | ||
| 750 | bdi_destroy(&server->bdi); | ||
| 751 | out_bdi: | 749 | out_bdi: |
| 750 | bdi_destroy(&server->bdi); | ||
| 751 | out_fput: | ||
| 752 | /* 23/12/1998 Marcin Dalecki <dalecki@cs.net.pl>: | 752 | /* 23/12/1998 Marcin Dalecki <dalecki@cs.net.pl>: |
| 753 | * | 753 | * |
| 754 | * The previously used put_filp(ncp_filp); was bogus, since | 754 | * The previously used put_filp(ncp_filp); was bogus, since |
diff --git a/fs/proc/root.c b/fs/proc/root.c index 9a8a2b77b874..03102d978180 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c | |||
| @@ -91,20 +91,18 @@ static struct file_system_type proc_fs_type = { | |||
| 91 | 91 | ||
| 92 | void __init proc_root_init(void) | 92 | void __init proc_root_init(void) |
| 93 | { | 93 | { |
| 94 | struct vfsmount *mnt; | ||
| 95 | int err; | 94 | int err; |
| 96 | 95 | ||
| 97 | proc_init_inodecache(); | 96 | proc_init_inodecache(); |
| 98 | err = register_filesystem(&proc_fs_type); | 97 | err = register_filesystem(&proc_fs_type); |
| 99 | if (err) | 98 | if (err) |
| 100 | return; | 99 | return; |
| 101 | mnt = kern_mount_data(&proc_fs_type, &init_pid_ns); | 100 | err = pid_ns_prepare_proc(&init_pid_ns); |
| 102 | if (IS_ERR(mnt)) { | 101 | if (err) { |
| 103 | unregister_filesystem(&proc_fs_type); | 102 | unregister_filesystem(&proc_fs_type); |
| 104 | return; | 103 | return; |
| 105 | } | 104 | } |
| 106 | 105 | ||
| 107 | init_pid_ns.proc_mnt = mnt; | ||
| 108 | proc_symlink("mounts", NULL, "self/mounts"); | 106 | proc_symlink("mounts", NULL, "self/mounts"); |
| 109 | 107 | ||
| 110 | proc_net_init(); | 108 | proc_net_init(); |
| @@ -209,5 +207,5 @@ int pid_ns_prepare_proc(struct pid_namespace *ns) | |||
| 209 | 207 | ||
| 210 | void pid_ns_release_proc(struct pid_namespace *ns) | 208 | void pid_ns_release_proc(struct pid_namespace *ns) |
| 211 | { | 209 | { |
| 212 | mntput(ns->proc_mnt); | 210 | kern_unmount(ns->proc_mnt); |
| 213 | } | 211 | } |
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 20403dc5d437..ae0e76bb6ebf 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c | |||
| @@ -2264,19 +2264,12 @@ static int __init ubifs_init(void) | |||
| 2264 | return -EINVAL; | 2264 | return -EINVAL; |
| 2265 | } | 2265 | } |
| 2266 | 2266 | ||
| 2267 | err = register_filesystem(&ubifs_fs_type); | ||
| 2268 | if (err) { | ||
| 2269 | ubifs_err("cannot register file system, error %d", err); | ||
| 2270 | return err; | ||
| 2271 | } | ||
| 2272 | |||
| 2273 | err = -ENOMEM; | ||
| 2274 | ubifs_inode_slab = kmem_cache_create("ubifs_inode_slab", | 2267 | ubifs_inode_slab = kmem_cache_create("ubifs_inode_slab", |
| 2275 | sizeof(struct ubifs_inode), 0, | 2268 | sizeof(struct ubifs_inode), 0, |
| 2276 | SLAB_MEM_SPREAD | SLAB_RECLAIM_ACCOUNT, | 2269 | SLAB_MEM_SPREAD | SLAB_RECLAIM_ACCOUNT, |
| 2277 | &inode_slab_ctor); | 2270 | &inode_slab_ctor); |
| 2278 | if (!ubifs_inode_slab) | 2271 | if (!ubifs_inode_slab) |
| 2279 | goto out_reg; | 2272 | return -ENOMEM; |
| 2280 | 2273 | ||
| 2281 | register_shrinker(&ubifs_shrinker_info); | 2274 | register_shrinker(&ubifs_shrinker_info); |
| 2282 | 2275 | ||
| @@ -2288,15 +2281,20 @@ static int __init ubifs_init(void) | |||
| 2288 | if (err) | 2281 | if (err) |
| 2289 | goto out_compr; | 2282 | goto out_compr; |
| 2290 | 2283 | ||
| 2284 | err = register_filesystem(&ubifs_fs_type); | ||
| 2285 | if (err) { | ||
| 2286 | ubifs_err("cannot register file system, error %d", err); | ||
| 2287 | goto out_dbg; | ||
| 2288 | } | ||
| 2291 | return 0; | 2289 | return 0; |
| 2292 | 2290 | ||
| 2291 | out_dbg: | ||
| 2292 | dbg_debugfs_exit(); | ||
| 2293 | out_compr: | 2293 | out_compr: |
| 2294 | ubifs_compressors_exit(); | 2294 | ubifs_compressors_exit(); |
| 2295 | out_shrinker: | 2295 | out_shrinker: |
| 2296 | unregister_shrinker(&ubifs_shrinker_info); | 2296 | unregister_shrinker(&ubifs_shrinker_info); |
| 2297 | kmem_cache_destroy(ubifs_inode_slab); | 2297 | kmem_cache_destroy(ubifs_inode_slab); |
| 2298 | out_reg: | ||
| 2299 | unregister_filesystem(&ubifs_fs_type); | ||
| 2300 | return err; | 2298 | return err; |
| 2301 | } | 2299 | } |
| 2302 | /* late_initcall to let compressors initialize first */ | 2300 | /* late_initcall to let compressors initialize first */ |
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 2e0ecfcc881d..5b4293d9819d 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
| @@ -1269,7 +1269,7 @@ void mq_clear_sbinfo(struct ipc_namespace *ns) | |||
| 1269 | 1269 | ||
| 1270 | void mq_put_mnt(struct ipc_namespace *ns) | 1270 | void mq_put_mnt(struct ipc_namespace *ns) |
| 1271 | { | 1271 | { |
| 1272 | mntput(ns->mq_mnt); | 1272 | kern_unmount(ns->mq_mnt); |
| 1273 | } | 1273 | } |
| 1274 | 1274 | ||
| 1275 | static int __init init_mqueue_fs(void) | 1275 | static int __init init_mqueue_fs(void) |
| @@ -1291,11 +1291,9 @@ static int __init init_mqueue_fs(void) | |||
| 1291 | 1291 | ||
| 1292 | spin_lock_init(&mq_lock); | 1292 | spin_lock_init(&mq_lock); |
| 1293 | 1293 | ||
| 1294 | init_ipc_ns.mq_mnt = kern_mount_data(&mqueue_fs_type, &init_ipc_ns); | 1294 | error = mq_init_ns(&init_ipc_ns); |
| 1295 | if (IS_ERR(init_ipc_ns.mq_mnt)) { | 1295 | if (error) |
| 1296 | error = PTR_ERR(init_ipc_ns.mq_mnt); | ||
| 1297 | goto out_filesystem; | 1296 | goto out_filesystem; |
| 1298 | } | ||
| 1299 | 1297 | ||
| 1300 | return 0; | 1298 | return 0; |
| 1301 | 1299 | ||
diff --git a/ipc/msgutil.c b/ipc/msgutil.c index 8b5ce5d3f3ef..5652101cdac0 100644 --- a/ipc/msgutil.c +++ b/ipc/msgutil.c | |||
| @@ -27,11 +27,6 @@ DEFINE_SPINLOCK(mq_lock); | |||
| 27 | */ | 27 | */ |
| 28 | struct ipc_namespace init_ipc_ns = { | 28 | struct ipc_namespace init_ipc_ns = { |
| 29 | .count = ATOMIC_INIT(1), | 29 | .count = ATOMIC_INIT(1), |
| 30 | #ifdef CONFIG_POSIX_MQUEUE | ||
| 31 | .mq_queues_max = DFLT_QUEUESMAX, | ||
| 32 | .mq_msg_max = DFLT_MSGMAX, | ||
| 33 | .mq_msgsize_max = DFLT_MSGSIZEMAX, | ||
| 34 | #endif | ||
| 35 | .user_ns = &init_user_ns, | 30 | .user_ns = &init_user_ns, |
| 36 | }; | 31 | }; |
| 37 | 32 | ||
